Bean实例化的三种方式
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();
}
}
测试及结果同上
总结:

测试代码:
