1. 什么是注入?
通过 Spring ⼯⼚及配置⽂件,为所创建对象的成员变量赋值。
1.1 为什么要注入?
- 通过编码的⽅式,为成员变量进⾏赋值,存在耦合。
- 注入的好处:解耦合。
public class Person{
private int id;
priavte String name;
// .... 省略get、set方法
}
public void test4() {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
Person person = (Person) ctx.getBean("person");
// 通过代码为变量赋值, 存在耦合, 如果我们以后想修改变量的值, 需要修改代码, 重新编译
person.setId(1);
person.setName("bearjun");
System.out.println(person);
}
1.2 如何进⾏注⼊[开发步骤]
- 类的成员变量提供***set*** / get ⽅法
- 配置 spring 的配置⽂件
<bean id="person" name="p" class="com.bearjun.basic.Person">
<!--
name要对应实体类的变量名称
value为要赋的值
-->
<property name="id">
<value>10</value>
</property>
<property name="name">
<value>bearjun</value>
</property>
</bean>
测试:
public void test5() {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
Person person = (Person) ctx.getBean("person");
System.out.println(person);
// 打印的id=10,name=bearjun
}
1.3 注⼊好处
** 解耦合 **
2. Spring注⼊的原理分析(简易版)
Spring底层通过调用对象属性对应的set方法,完成成员变量的赋值,这种⽅式也称为set注入。
评论区