Bean实例化三种方式
程序员文章站
2022-05-23 18:05:19
...
1、使用无参构造方法实例化(重点使用的一种,下面两种使用较少)
它会根据默认无参构造方法来创建类对象,如果bean中没有默认无参构造函数,将会创建失败
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
id:Bean实例在Spring容器中的唯一标识
class:Bean的全限定名称( 绑定的java类(bean)的全路径(包名+类名) )
2、工厂静态方法实例化
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
<bean id="userDao" class="com.itheima.factory.StaticFactoryBean"
factory-method="createUserDao" />
3、工厂实例化方法
工厂静态方法返回Bean实例
1.定义一个工厂
public class StaticFactoryBean {
public static UserDao createUserDao(){
return new UserDaoImpl();
}
}
2.配置Spring的配置文件
<bean id="userDao" class="com.itheima.factory.StaticFactoryBean"
factory-method="createUserDao" />
工厂非静态方法返回Bean实例
1.定义一个工厂
public class DynamicFactoryBean {
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
2.配置Spring的配置文件
<bean id="factoryBean" class="com.itheima.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>
静态工厂类与非静态工厂类的区别是,前者不需要创建对象,直接可以调用静态方法创建bean;后者则要先创建对象,然后再通过对象调用其方法创建bean