Loading... ## 通过反射调用构造方法创建bean对象 ```java <!--bean标签表示配置bean--> <!--id属性表示给bean起名字--> <!--class属性表示给bean定义类型--> <bean id="bookDao" class="com.bdm.dao.impl.BookDaoImpl"/> ``` ## 通过静态工厂方法创建bean对象 factory-method为下面OrderDaoFactory这个类的静态方法,当实例化bean时,会自动调用静态方法,返回静态方法中返回的对象! ```java <!--使用静态工厂实例化bean--> <bean id="orderDao" class="com.bdm.factory.OrderDaoFactory" factory-method="getOrderDao" /> ``` ## 通过实例工厂方法创建bean对象 ```java <!--使用实例工厂实例化bean--> <!--factory-bean 为工厂的对象--> <!--factory-method 为工厂的对象的方法--> <bean id="userFactory" class="com.bdm.factory.UserDaoFactory"/> <bean id="userDao1" factory-method="getOrderDao" factory-bean="userFactory" /> ``` ## 通过FactoryBean创建bean对象 ```java <!--使用FactoryBean实例化bean--> <bean id="userDao" class="com.bdm.factory.UserDaoFactoryBean" /> ``` ### UserDaoFactoryBean ```java public class UserDaoFactoryBean implements FactoryBean<UserDao> { // 代替原始实例工厂中创建对象的方法 @Override public UserDao getObject() throws Exception { return new UserDaoImpl(); } @Override public Class<?> getObjectType() { return UserDao.class; } // true代表单例,false代表非单例 @Override public boolean isSingleton() { return true; } } ``` 最后修改:2022 年 07 月 30 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。