1、基础介绍
在前面的学习当中我们学习了通过元素来声明bean和xml配置文件中和元素来注入bean。
其实在spring容器可以在不使用注入和元素的情况下自动装配相互协作的bean之间的关系,这有助于减少编写一个大的基于spring的应用程序的xml配置的数量。
2、自动装配的模式
用于指示Spring容器为来使用自动装配进行依赖注入,使用元素的autowire属性来指定声明自动装配模式。
3、模式表
属性 | 描述 |
---|---|
No | 默认的位置,它意味着没有自动装配 |
– | – |
byName | 由属性名自动装配。Spring容器看到在xml配置文件中bean的自动装配的属性设置为byName。然后尝试匹配并且将它的属性与在配置文件中被定义为相同名称的beans的属性进行连接。 |
byType | 由属性数据类型自动装配。Spring容器看到在xml配置文件中bean的自动装配的属性设置为byType然后如果它的类型匹配配置文件中的一个确切的bean名称,它将尝试匹配和连接属性的类型。如果存在不止一个这样的bean,则会抛出异常。 |
Constructor | 类似于byType,但该类型适用于构造函数参数类型。如果在容器中,没有一个构造函数参数类型的bean,则报错。 |
autodetect | Spring首先尝试通过constructor使用自动装配来连接,如果它不执行Spring尝试通过byType来自动装配。 |
4、自动装配的局限性
- 重写的可能性;
- 原始数据类型;
- 混乱的本质;