1.构造器实例化
<bean id="person1" class="com.mengma.instance.constructor.Person1" />
直接用相应的类Person1去实例化person1。
2.静态工厂实例化
package com.mengma.instance.static_factory; public class MyBeanFactory { // 创建Bean实例的静态工厂方法 public static Person1 createBean() { return new Person1(); } }
<bean id="person2" class="com.mengma.instance.static_factory.MyBeanFactory" factory-method="createBean" />
指定是用哪个工厂类的哪个方法进行实例化。
3.实例工厂实例化
package com.mengma.instance.factory; public class MyBeanFactory { public MyBeanFactory() { System.out.println("person3工厂实例化中"); } // 创建Bean的方法 public Person3 createBean() { return new Person3(); } }
<!-- 配置实例工厂 -->
<bean id="myBeanFactory" class="com.mengma.instance.factory.MyBeanFactory" />
<!-- factory-bean属性指定一个实例工厂,factory-method属性确定使用工厂中的哪个方法 -->
<bean id="person3" factory-bean="myBeanFactory" factory-method="createBean" />
用工厂类中的普通成员函数进行实例化。首先,配置用构造器实例化一个工厂bean,在用这个工厂bean中的方法去实例化person3
备注:class属性的值都是包名+类名