构造方法实例化bean
使用静态方法实例化bean
使用实例化工厂实例化bean
使用FactoryBean实例化bean
1.构造方法
提供无参构造方法
public class BookDaoImpl implements BookDao {
private BookDaoImpl() {
System.out.println("book dao constructor ... ");
}
@Override
public void save() {
System.out.println("book dao -- save");
}
}
xml
<bean id="bookDao" class="com.badianboke.dao.impl.BookDaoImpl"></bean>
2.静态工厂
public class BookFactory {
public static BookDao getBookDao(){
System.out.println("book factory ... ");
return new BookDaoImpl();
}
}
xml
<bean id="bookFactory"
class="com.badianboke.factory.BookFactory"
factory-method="getBookDao">
</bean>
3.实例工厂
public class BookFactory {
public BookDao getBookDao(){
System.out.println("book factory ... ");
return new BookDaoImpl();
}
}
xml
<bean id="bookFactory" class="com.badianboke.factory.BookFactory"></bean>
<bean id="bookDao" factory-method="getBookDao" factory-bean="bookFactory"></bean>
3.使用FactoryBean实例化
BookDaoFactoryBean
package com.badianboke.factory;
import com.badianboke.dao.BookDao;
import com.badianboke.dao.impl.BookDaoImpl;
import org.springframework.beans.factory.FactoryBean;
public class BookDaoFactoryBean implements FactoryBean<BookDao> {
@Override
public BookDao getObject() throws Exception {
return new BookDaoImpl();
}
@Override
public Class<?> getObjectType() {
return BookDao.class;
}
@Override
public boolean isSingleton() {
return FactoryBean.super.isSingleton();
}
}
xml
<bean id="bookDao" class="com.badianboke.factory.BookDaoFactoryBean"></bean>