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

是否将当前网页翻译成中文 网页翻译

猜你喜欢

转载自blog.csdn.net/anhldd/article/details/84938955