1、简介
在容器中的Bean要实例化为对象有三种方式
1、构造方法
2、静态工厂
3、实例工厂
4、实现工厂接口
2、构造方法
构造方法实例化Bean即是直接通过构造方法创建对象
<bean id="bookDao" class="com.wn.spring.dao.impl.BookDaoImpl"/>
当不存在无参构造是会抛出异常
3、静态工厂
静态工厂类实现
public class BookDaoFactory {public static BookDao getBookDao(){return new BookDaoImpl();}}
配置静态工厂Bean
<bean id="bookDaoFactory" class="com.wn.spring.factory.BookDaoFactory" factory-method="getBookDao"/>
4、实例工厂
实例工厂类实现
public class BookServiceFactory {public BookService getBookService(){return new BookServiceImpl();}}
实例工程Bean配置
<bean id="bookServiceFactory" class="com.wn.spring.factory.BookServiceFactory"/>
<bean factory-bean="bookServiceFactory" factory-method="getBookService"/>
5、继承工厂接口
继承工厂接口实现
public class BookDaoFactoryBean implements FactoryBean<BookDao> {@Overridepublic BookDao getObject() throws Exception {return new BookDaoImpl();}@Overridepublic Class<?> getObjectType() {return null;}
}
继承工厂的Bean的配置
<bean id="bookDao" class="com.wn.spring.factory.BookDaoFactoryBean"/>