首先,我們需要定義一個Bean的class類:
package framework.spring;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.*;
public class Person {
private String name;
private String address;
private int phone;
public Person() {
System.out.println("【構造器】呼叫Person的構造器實體化");
}
public Person(String name, String address, int phone) {
this.name = name;
this.address = address;
this.phone = phone;
}
public String getBeanName() {
return beanName;
}
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("【注入屬性】注入屬性name");
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
System.out.println("【注入屬性】注入屬性address");
this.address = address;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
System.out.println("【注入屬性】注入屬性phone");
this.phone = phone;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", phone=" + phone +
", beanFactory=" + beanFactory +
", beanName='" + beanName + '\'' +
'}';
}
}
Setter注入
<!-- setter -->
<bean id="person1" scope="singleton" p:name="張三" p:address="廣州"
p:phone="1319412212" />
setter注入只需要將相對應的屬性引數傳入,就可以了,
?
構造器注入
<!-- constructor-->
<bean id="person2" init-method="myInit"
destroy-method="myDestory" scope="singleton" >
<constructor-arg name="name" value="https://www.cnblogs.com/ljunn/archive/2021/09/04/zhangsan"></constructor-arg>
<constructor-arg name="address" value="https://www.cnblogs.com/ljunn/archive/2021/09/04/beijing"></constructor-arg>
<constructor-arg name="phone" value="https://www.cnblogs.com/ljunn/archive/2021/09/04/1319124212"></constructor-arg>
</bean>
靜態工廠注入
<!-- static factory-->
<bean id="person3" scope="singleton" factory-method="staticPersonFactory">
</bean>
在靜態工廠注入的組態檔中,我們需要定義對應的靜態工廠類和靜態方法,注意這里的靜態就是指static,我剛剛突然想不起來靜態是指什么意思了,
?
public class PersonFactory {
// static factory
public static Person staticPersonFactory(){
return new Person("lisi","nanjing",131912312);
}
// factory
public Person personFactory(){
return new Person("wanger","changsha",131912312);
}
}
這里定義了兩個工廠,一個是靜態的,一個是非靜態的,
?
實體工廠注入
實體工廠和靜態工廠稍微有點區別,因為靜態工廠不需要初始化工廠,而實體工廠需要,
?
<!-- factory-->
<bean id="personFactory" ></bean>
<bean id="person4" scope="singleton" factory-bean="personFactory" factory-method="personFactory">
</bean>
這里我們先定義了一個工廠類,然后才定義的我們需要的bean物件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/297468.html
標籤:其他
下一篇:并發編程之:AQS原始碼決議
