1.无参构造实例化
在配置文件中配置
<bean id="userDao" class="Wss.dao.impl.UserDaoImpl" scope="singleton" init-method="init" destroy-method="destory"></bean>
测试代码:
public class SpringTest { public static void test1(){ // ApplicationContext app =new ClassPathXmlApplicationContext("applicationContext.xml"); ClassPathXmlApplicationContext app =new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao1 = (UserDao) app.getBean("userDao"); // UserDao userDao2 = (UserDao) app.getBean("userDao"); System.out.println(userDao1); // System.out.println(userDao2); // app.close(); }
运行结果:
2.工厂静态方法实例化
同1:
<bean id="userDao" class="Wss.factory.StaticFactory" factory-method="getUserDao"> </bean>
package Wss.factory; import Wss.dao.UserDao; import Wss.dao.impl.UserDaoImpl; public class StaticFactory { public static UserDao getUserDao(){ return new UserDaoImpl(); }
测试与结果同1
3.工厂实例方法实例化
<bean id="factory" class="Wss.factory.DynamicFactory" > </bean> <bean id="userDao" factory-bean="factory" factory-method="getUserDao"> </bean>
package Wss.factory; import Wss.dao.UserDao; import Wss.dao.impl.UserDaoImpl; public class DynamicFactory { public UserDao getUserDao(){ return new UserDaoImpl(); } }
测试及结果同上
总结:
测试代码: