目录

Spring - Beans Auto-Wiring

您已经学习了如何使用元素声明bean,并使用XML配置文件中的元素注入

Spring容器可以在不使用“constructor-arg”和“property”元素的情况下autowire连接协作bean之间的关系,这有助于减少为大型基于Spring的应用程序编写的XML配置量。

自动装配模式

以下是自动装配模式,可用于指示Spring容器使用自动装配进行依赖注入。 您可以使用元素的autowire属性为bean定义指定autowire模式。

Sr.No 模式和说明
1 no

这是默认设置,这意味着没有自动装配,您应该使用显式bean引用进行连接。 你对这种布线没什么特别的。 这是您在依赖注入章节中已经看到的内容。

2 byName

按属性名称自动装配。 Spring容器在XML配置文件中byName autowire属性设置为byName autowire属性。 然后,它尝试匹配并将其属性与配置文件中由相同名称定义的bean相连。

3 byType

按属性数据类型自动装配。 Spring容器在XML配置文件中查看autowire属性设置为byType autowire属性。 然后,如果属性的type与配置文件中的一个bean名称匹配,则会尝试匹配并连接属性。 如果存在多个这样的bean,则抛出致命异常。

4 constructor

与byType类似,但type适用于构造函数参数。 如果容器中没有构造函数参数类型的一个bean,则会引发致命错误。

5 autodetect

Spring首先尝试通过constructor使用autowire连接,如果它不起作用,Spring会尝试通过byType自动装配。

您可以使用byTypeconstructor自动装配模式连接数组和其他类型集合。

自动装配的限制

自动装配在项目中一致使用时效果最佳。 如果一般不使用自动装配,那么开发人员使用它来连接一个或两个bean定义可能会让人感到困惑。 但是,自动装配可以显着减少指定属性或构造函数参数的需要,但在使用之前应考虑自动装配的限制和缺点。

Sr.No. 限制和描述
1

Overriding possibility

您仍然可以使用设置指定依赖项,这些设置将始终覆盖自动装配。

2

Primitive data types

您无法自动装配所谓的简单属性,例如基元,字符串和类。

3

Confusing nature

自动装配不如显式布线精确,因此如果可能,请使用明确的布线。

↑回到顶部↑
WIKI教程 @2018