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"/>