1. 基本介绍:
我们学习了通过<bean>元素来声明bean,和xml配置文件中的<constructor-arg>和<property>元素来注入bean,其实Spring容器可以在不使用注入和<bean>元素的情况下自动装配相互协作的bean之间的关系,这有助于减少编写一个大的基于Spring的应用程序的XML配置的数量。
2.自动装配模式
用于指示Spring容器为来使用自动装配进行依赖注入。
使用<bean>元素的autowire属性为一个bean定义指定自动装配模式。
3.自动装配的局限性
①重写的可能性:可以使用总是重写自动装配的<constructor-arg>和<property>设置来指定依赖关系。
②原始数据类型:不能自动装配所谓的简单类型包括基本类型
③混乱的本质:自动装配不如显式装配精确,所以可能的话尽可能使用显式装配。
4.五种模式表是
NO :默认的设置,它意味着没有自动装配
byName:由属性名自动装配。Spring容器看到在XML配置文件中bean的自动装配的属性设置为byName。然后尝试匹配,并且将它的属性与在配置文件中被定义为相同名称的beans的属性进行连接。
byType:由属性数据类型的自动装配。Spring容器看到在XML配置文件中bean的自动装配的属性设置为byType。然后如果它的类型匹配配置文件中的一个确切的bean名称,它将尝试匹配和连接属性的类型。如果存在不止一个这样的bean,则一个致命的异常将会抛出。
Constructor:类似于byType,但该类型适用于构造函数参数类型。如果在容器中没有一个构造函数参数类型的bean,则一个致命错误将会发生。
Autodetect:Spring首先尝试通过constructor使用自动装配来连接,如果它不执行,Spring尝试通过byType来自动装配。