AutoWired自动装配
自动装配是XML配置中的一种配置方式,有别于之前的手动连线,自动装配能够使得Spring容器自动根据名称或者是类别完成Bean的装配。这样做的优点和缺点都是显而易见的:节省了开发人员编写XML的时间,但同时也可能会造成项目结构的混乱和Bean定义的缺失。
而具体的,自动装配又分为了三种常用模式:
-
byName
比较容易理解,看代码。
@Getter @Setter public class Father{ private Son son; private String name; } @Getter @Setter public class Son{ private String name; }
因为Father类中,Son类对象的实例名称与Son的bean相同,因此通过byName可以自动将id为son的bean装配给id为Father的bean中。
<bean id="father" class="online.starlex.Father" autowire="byName"> <property name="name" value="Father"/> </bean> <bean id="son" class="online.starlex.Son"> <property name="name" value="Son"/> </bean>
-
byType
与byName类似,只是按照class进行检索注入,而非id。
需要注意的是,byType方式在有多个相同class的bean出现时可能会报错,而如果没有找到的话,则什么都不会发生。
-
constructor
在byName的基础上,只是
property
标签变成了constructor-arg
标签。