bean的三种实例化方式
- 使用类构造器实例化
- 使用静态工厂方法实例化
- 使用实力工厂方法实例化(工厂方法模式)
代码示例
Bean1
package com.spring.bean;
public class Bean1 {
public Bean1() {
System.out.println("baen1 实例化");
}
}
Bean2
package com.spring.bean;
public class Bean2 {
}
package com.spring.bean;
public class Bean2Factory {
public static Bean2 createBean2() {
System.out.println("Bean2Factory");
return new Bean2();
}
}
Bean3
package com.spring.bean;
public class Bean3 {
}
package com.spring.bean;
public class Bean3Factory {
public Bean3 createBean3() {
System.out.println("Bean3Factory");
return new Bean3();
}
}
applicationContext.xml
<bean id="bean1" class="com.spring.bean.Bean1"></bean>
<bean id="bean2" class="com.spring.bean.Bean2Factory" factory-method="createBean2"></bean>
<bean id="bean3Factory" class="com.spring.bean.Bean3Factory"></bean>
<bean id="bean3" class="com.spring.bean.Bean3" factory-bean="bean3Factory" factory-method="createBean3"></bean>
</beans>
Test1
public class Test1 {
@Test
public void testBean1() {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean1 bean1 = (Bean1) applicationContext.getBean("bean1");
Bean2 bean2 = (Bean2) applicationContext.getBean("bean2");
Bean3 bean3 = (Bean3) applicationContext.getBean("bean3");
}
}