05-物件的依賴關係-依賴注入
一、set方法注入
value:表示值型別的注入
ref:表示物件型別的注入
pojo
public class Person {
private String name;
private Integer age;
private Car car;
}
public class Car {
private String name;
private String color;
}
bean配置
<bean name="person1" class="com.qfedu.spring.pojo.Person"> <property name="name" value="helen"></property> <property name="age" value="18"></property> <property name="car" ref="car"></property> </bean>
二、構造方法注入
1、建立Person的有參構造方法
public Person(String name, Car car) {
super();
System.out.println(“構造方法 Person(String name, Car car)”);
this.name = name;
this.car = car;
}
配置bean
測試
@Test
public void testConstructor() {
AbstractApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext-injection.xml”);
Person person2 = (Person)context.getBean(“person2”);
System.out.println(person2);
}
2、使用 index 指定引數的位置
pojo中有如下兩個構造方法
public Person(String name, Car car) {
super();
System.out.println(“構造方法 Person(String name, Car car)”);
this.name = name;
this.car = car;
}
public Person(Car car, String name) { super(); System.out.println("構造方法 Person(Car car, String name)"); this.name = name; this.car = car; }
配置bean:下面的配置會自動匹配 public Person(String name, Car car) 建構函式
3、使用type指定引數的型別
public Person(Car car, String name) {
super();
System.out.println(“構造方法 Person(Car car, String name)”);
this.name = name;
this.car = car;
}
public Person(Car car, Integer name) {
super();
System.out.println("構造方法 Person(Car car, Integer name)");
this.name = name + "";
this.car = car;
}
bean配置
三、p名稱空間注入
匯入名稱空間
xmlns:p=“http://www.springframework.org/schema/p”
使用 p: 屬性注入:
p:屬性名 表示值型別
p:屬性名-ref 表示引用型別
典型案例:配置資料來源
四、spel注入
測試
@Test
public void testSpel() {
AbstractApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext-injection.xml”);
Person person4 = (Person)context.getBean(“person4”);
System.out.println(person4);
}
是否將當前網頁翻譯成中文 網頁翻譯