侧边栏壁纸
  • 累计撰写 101 篇文章
  • 累计创建 89 个标签
  • 累计收到 9 条评论

spring系列笔记 - 第四章 注入

bearjun
2020-11-19 / 0 评论 / 0 点赞 / 1,578 阅读 / 1,122 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-11-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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注入
20200521181522851.png

0

评论区