Spring3之 bean命名(http://ponlya.iteye.com/blog/1004889) 中已经有一种实例化bean的方法了,这里看spring3文档有另二种:Instantiation with a static factory method(静态工厂方法实例化),Instantiation using an instance factory method(实例工厂方法实例化)
a)、Instantiation with a static factory method
com.spring305.test.beanInit.po.StaticFactoryBeanInit.java
public class StaticFactoryBeanInit {
public void test(){
System.out.println(StaticFactoryBeanInit.class+" test method");
}
}
com.spring305.test.beanInit.po.StaticFactory.java
public class StaticFactory {
private static StaticFactoryBeanInit staticFactoryBeanInit = new StaticFactoryBeanInit();
/**
* 测试静态工厂方法实例化bean
* @return
*/
public static StaticFactoryBeanInit createBean(){
return staticFactoryBeanInit;
}
}
单例模式实现
b)、Instantiation using an instance factory method
com.spring305.test.beanInit.po.StaticFactory2.java
public class StaticFactory2 {
private static StaticFactoryBeanInit staticFactoryBeanInit = new StaticFactoryBeanInit();
/**
* 测试非静态实例工厂方法实例化bean
* @return
*/
public StaticFactoryBeanInit createBean(){
return staticFactoryBeanInit;
}
}
一字母之差而已。
src/testBeanInit.xml
<!-- 静态工厂方法实例化Bean <bean id="staticFactoryBeanInit" class="com.spring305.test.beanInit.po.StaticFactory" factory-method="createBean"> </bean> --> <!-- 实例工厂方法实例化Bean. class 属性必须为空 --> <bean id="staticFactory" class="com.spring305.test.beanInit.po.StaticFactory2"></bean> <bean id="staticFactoryBeanInit" factory-bean="staticFactory" factory-method="createBean"> </bean>
<!--EndFragment-->