欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring中bean的三种实例化方式

程序员文章站 2022-03-03 11:40:36
...
第一种:通过构造函数实例化bean。给bean提供一个无参的构造方法(可以是默认的)通过构造函数实例化bean,需要指定class属性:


public class PersonServiceBean implements PersonService {

public void save() {
System.out.println("保存成功!");
}
}



spring配置文件中的配置:
<!-- PersonServiceBean -->
<bean id="personService" class="com.ibm.service.impl.PersonServiceBean"/>

第二种:通过静态工厂方法实例化bean。定义工厂bean时,除了要指定工厂的class属性外,同时还必须使用factory-method属性指定要调用的工厂方法的名称。注意factory-method的方法是静态的。


public class PersonServiceBean implements PersonService {

public void save() {
System.out.println("保存成功!");
}
}




public class PersonServiceBeanFactory {

// 静态工厂方法
public static PersonService createPersonServiceBean() {
return new PersonServiceBean();
}

}



spring配置文件中的配置:
<bean id="personService2" class="com.ibm.service.impl.PersonServiceBeanFactory"
factory-method="createPersonServiceBean" />

第三种:通过实例工厂实例化bean。必须先实例化一个工厂(factory) bean,再在定义bean时通过factory-bean属性来设置引用哪个实例化工厂,通过factory-method来设置使用哪个方法:


public class PersonServiceBean implements PersonService {

public void save() {
System.out.println("保存成功!");
}
}



public class PersonServiceBeanFactory {

// 实例工厂方法
public PersonService createPersonServiceBean2() {
return new PersonServiceBean();
}

}


spring配置文件中的配置:
<bean id="personServiceBeanFactory" class="com.ibm.service.impl.PersonServiceBeanFactory" />
<bean id="personService3" factory-bean="personServiceBeanFactory" factory-method="createPersonServiceBean2" />
相关标签: Bean Spring Java