Spring提供了三种方式实例化Bean.
* 构造方法实例化:(默认无参数)
* 静态工厂实例化:
* 实例工厂实例化:
1.构造方法实现Bean的实例化
//无参构造方法
package annotation;
public class Monkey {
private String monkeyName;
public String getMonkeyName() {
return monkeyName;
}
public void setMonkeyName(String monkeyName) {
this.monkeyName = monkeyName;
}
@Override
public String toString() {
return "猴子的名称:" + monkeyName;
}
}
//有参构造方法
package annotation;
public class Person {
private int age;
private String name;
public Person(int age,String name){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return age+name;
}
}
配置文件:
<bean id="Monkey" class="annotation.Monkey">
<property name="monkeyName" value="阿波尔"></property>
</bean>
<bean id="person" class="annotation.Person">
<constructor-arg name="age" value="12"></constructor-arg>
<constructor-arg name="name" value="james"></constructor-arg>
</bean>
2.静态工厂实例化
package annotation;
public class MyBean {
}
package annotation;
public class MyBeanFactory {
public static MyBean getBean(){
System.out.println("静态工厂实例化");
return new MyBean();
}
}
配置文件:
<bean id="myBean" class="annotation.MyBeanFactory" factory-method="getBean">
</bean>
3.实例工厂实例化
package annotation;
/*
* 使用实例工厂
*/
public class Bean3 {
}
package annotation;
public class Bean3Factory {
public Bean3 getBean3(){
System.out.println("实例工厂实例化");
return new Bean3();
}
}
配置文件:
<bean id="bean3Factory" class="annotation.Bean3Factory"></bean>
<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>