Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入

Spring配置

别名

我们可以在bean.xml中用alias标签给bean对象起一个别名,当我们在客户端通过context对象使用getBean方法获取对象时,可以通过这个别名获取,另一种方式是,可以在

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第1张图片

Import

这个import,一般用于团队开发使用,他可以将多个配置文件,导入合并为一个。假设,现在项目中有多个人开发,这三个人复制不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import将所有人的beans.xml合并为一个总的!使用的时候,直接使用总的配置就可以了。

这里有多个bean.xml,我们在一个总的xml中按照如下方式导入其他bean.xml,在客户端获取context对象时,只需要调这个总的xml即可,所有import的xml中的bean对象都可以注入到spring容器中去。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第2张图片

客户端调用总的xml即可。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第3张图片

依赖注入

构造器注入

在上一文章中的末尾,已经提及,在此就不赘述。

Set方式注入[重点]

依赖注入: Set注入!
依赖: bean对象的创建依赖于容器!
注入: bean对象中的所有属性,由容器来注入!

用一个demo理解Set方式注入

创建一个地址类,给其属性设置set/get方法。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第4张图片

创建一个学生类,包含众多类型的属性,也包含我们刚创建的Address类作为Student类的一个属性

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第5张图片

并设置每个属性的get/set方法。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第6张图片

第一个属性name,我们直接通过在bean.xml中用

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第7张图片

第二个引用数据类型的属性address,我们现在bean.xml中将这个Address类注册到容器中成为一个bean,然后利用

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第8张图片

数组和list集合的属性在bean.xml中用下面这种方式注入值

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第9张图片

Map、Set、空值、Properties类型的属性分别用下面这些方式注入值

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第10张图片

我们在客户端获取这个student的bean对象,因为其属性值我们在bean.xml中都给其配置了,所以我们输出这个对象就发现,这个对象的属性值都已经被赋值进去了,以上这些属性值的注入背后靠的都是该属性对应的set方法。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第11张图片

拓展方式注入

我们可以使用 p命令空间和c命令空间进行注入,但是这两种方式不能直接使用,需要在bean.xml的上面导入xml约束

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第12张图片

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第13张图片

用一个demo理解p命令空间和c命令空间进行注入

p命令空间

创建一个User类,并设置两个属性,以及对应的get/set方法

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第14张图片

我们在bean.xml中注册这个实体类为bean,我们先导入p命令空间的约束,然后在注册这个bean的时候,我们不用之前的property标签来赋值了,而是简单的用p:name和p:age,来直接给这个bean对象的属性注入值,更加简洁。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第15张图片

在pom.xml中导入junit测试依赖

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第16张图片

编写测试类获取到这个user类的bean对象,并输出,可以看到两个属性值被成功注入。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第17张图片

c命令空间

给这个User类加上一个有参构造器和一个无参构造器。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第18张图片

在bean.xml中先加入c命令空间的约束,然后,在注册bean的时候通过c:age,c:name,来走有参构造器,直接将属性值注入到对象中去,也比上一篇文章提到的用有参构造器注入的方法更简洁些。

Spring学习|Spring配置:别名、import、依赖注入:构造器注入、Set方式注入(重点)、拓展方式注入_第19张图片

你可能感兴趣的:(SSM,spring,学习,java,后端)