1. 程式人生 > >05-物件的依賴關係-依賴注入

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);
}

是否將當前網頁翻譯成中文 網頁翻譯