1. 前言
Spring的核心技术IOC(Intorol of Converse控制反转)的实现途径是DI(dependency Insert依赖注入)。而依赖注入(DI)的实现方式又有两种,xml方式和注解方式。如下图所示:
2. set注入和构造注入
set注入和构造注入,这两种方法,是我们在第一次接触Spring的时候,最先学习使用Spring容器创建对象并赋值的方式。具体的代码及详细解释我已经写在了我前一篇的文章里,这里的链接:点进去就能看到很仔细的set注入和构造注入的详细介绍和使用方法。
3. 什么情况下要使用自动注入
在我们学习完set注入和构造注入之后,我们可能会发现,要是某个类的引用属性,也是其他类的属性的时候,若我们使用大量的使用
上面的写法就很冗余,那么有简单的写法吗?当然有,这种简便的方法就是自动注入。
4. 自动注入之byName
下面紧挨着的代码就是自动注入中的byName方式。
byName自动注入的特点就是,在
byName自动注入的使用要求:
必须依赖set()方法,也就是说只支持对set注入方式的简写。
不支持构造注入。
且只支持为引用类型属性赋值的时候使用byName的方式实现给引用类型属性赋值;给简单类型的属性赋值,不能使用byName这种构造注入,需要正常写。
那么在给引用类型的属性赋值的时候,使用了byName自动注入,那么我们便可以不写
答案是:当Spring发现你使用了byName这种自动注入的时候,它会自动去寻找当前
5. 自动注入之byType注入
下面紧挨着的代码就是自动注入中的byType方式。
byType自动注入的特点就是,在
byType自动注入的使用要求:
必须依赖set方法,因此必须是对set注入方法的简写
支持set注入:如下所示
不支持构造注入:如下所示
只支持给set注入中的引用类型属性赋值时候简写,不支持给set注入中的简单类型赋值,(给set注入中的简单类型赋值,仍需要正常写)如下所示
那么但给引用类型的属性赋值的时候,使用了byType自动注入,那么我们便可以不写
答案是:Spring在见到byType自动注入的时候,会自动匹配其他的
!!注意!!:
由于Spring是单例模式,所以在使用自动注入给引用类型的属性匹配的
到此这篇关于Spring中自动注入的两种方式总结的文章就介绍到这了,更多相关Spring自动注入内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!