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);
}