有时候,静态工厂方法是实例化对象的唯一方法,Spring支持通过<bean>元素的factory-method属性来装配工厂创建的Bean。
单例模式(设计模式)
public class DBUtil {
//构造方法私有化
private DBUtil(){}
//创建一个对象实例
private static DBUtil instance = new DBUtil(); //若没有static,则不能返回,为什么?
//获取对象
public static DBUtil getInstance(){
return instance;
}
public void test(){
System.out.println("调用DBUtil的test方法");
}
}
在配置文件中加入以下代码:
<!--工厂方法注入-->
<bean id="dbUtils" class="com.etc.utils.DBUtil" factory-method="getInstance"></bean>
编写测试类
public class TestFactoryMethodInject {
@Test
public void testGetBean() {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("applicationContext初始化完成");
DBUtil dbUtil = context.getBean("dbUtils",DBUtil.class);
dbUtil.test();
}
}