明亮的技术 2011-03-12
第一种:通过构造函数实例化bean。给bean提供一个无参的构造方法(可以是默认的)通过构造函数实例化bean,需要指定class属性:
public class PersonServiceBean implements PersonService { public void save() { System.out.println("保存成功!"); } }
spring配置文件中的配置:
<!--PersonServiceBean-->
<beanid="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配置文件中的配置:
<beanid="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配置文件中的配置:
<beanid="personServiceBeanFactory"class="com.ibm.service.impl.PersonServiceBeanFactory"/>
<beanid="personService3"factory-bean="personServiceBeanFactory"factory-method="createPersonServiceBean2"/>