Spring&Spring MVC技术分享-静态工厂方法返回自身实例
作者:
22-426
,
2022-03-25 10:06:58
,
所有人可见
,
阅读 164
C02_D13_factory_method
//bean
public class A {
private static A a = null;
private A() {
System.out.println("A的私有构造函数!!!");
}
public static A getA() {
System.out.println("调用了A类的静态工厂方法返回A的实例!!!");
if (null == a) {
a = new A();
}
return a;
}
public void methodOfA() {
System.out.println("调用了A类的方法MethodOfA.............");
}
}
//config-beans.xml
<!-- 默认情况下,spring容器调用类的无参构造函数创建bean的实例 -->
<!-- 但是,有的时候,你希望spring容器能够调用指定的方法来创建bean的实例 -->
<!-- 这个时候就需要使用工厂方法 ,但本质还是通过调用的构造函数创建-->
<!-- 可以使用一个类的静态工厂方法,生产自身的实例 -->
<!-- 这样的话,需要使用factory-method属性指定工厂方法的名称 -->
<bean class="com.qdu.bean.A" factory-method="getA" />
//main
/**
* *使用静态工厂方法返回自身实例
*
* @author 22-426
*/
public static void main(String[] args) {
ApplicationContext ctx =
new ClassPathXmlApplicationContext("config/beans1.xml");
A a = ctx.getBean(A.class);
a.methodOfA();
}