1、无参构造方法实例化
2、工厂静态方法实例化
3、工厂实例方法实例化
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- <bean id="UserDao" class="com.hkf.impl.UserDaoIpml"></bean>--> <!--<bean id="UserDao" class="com.hkf.impl.UserDaoIpml" scope="singleton"></bean>--> <!-- <bean id="UserDao" class="com.hkf.impl.UserDaoIpml" init-method="init" destroy-method="destroy"></bean>--> <!--工厂的静态实例化Bean--> <!-- <bean id="UserDao" class="com.hkf.fatory.StaticFactory" factory-method="getUserDao"></bean>--> <!--工厂的动态实例化Bean--> <bean id="factory" class="com.hkf.fatory.DynamicleFactory"></bean> <bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean> </beans>2、项目结构
3、工厂静态实例化Bean
public class StaticFactory { // 工厂的静态方法实例化Bean public static UserDao getUserDao(){ return new UserDaoIpml(); } }4、工厂动态实例化Bean
public class DynamicleFactory { // 工厂的动态实例化Bean public UserDao getUserDao(){ return new UserDaoIpml(); } }5、测试结果
public class TestSpring { @Test public void test1(){ ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("springContext.xml"); UserDao userDao = (UserDao) classPathXmlApplicationContext.getBean("UserDao"); UserDao userDao1 = (UserDao) classPathXmlApplicationContext.getBean("UserDao"); classPathXmlApplicationContext.close(); System.out.println(userDao); System.out.println(userDao1); }
