标签:one pac 组成 6.2 注解 cat 允许 多个 text
Spring容器可以在协作bean之间自动建立关系。你可以允许Spring通过检查ApplicationContext的上下文,自动为你的bean解析协作者(其他bean)。自动装配具有以下优点:
当使用基于XML配置,你可以通过<bean/>元素的autowire属性指定自动装配的模式,其中
自动装配有以下4种模式。您指定自动装配的每个bean并且也可以选择自动装配哪些个。
表6.2 自动装配模式
模式 |
解释 |
无 |
(默认)不会自动装配。Bean的引用必须通过定义ref元素来实现。 |
byName |
通过属性名进行自动装配。Spring会通过查找跟属性名称一致的Bean去装配。 |
byType |
允许通过跟属性类型一致的Bean进行装配,但是如果类型一致的Bean在容器中存在多个,则会报错,属性就装配不成功。 |
constructor |
跟byType类似,但是这种是针对构造参数进行装配。如果容器中不存在跟构造参数类型一致的Bean,则会报错。 |
使用byType和constructor自动装配模式,你可以连接数组和类型集合。在这种情况下,提供容器内与预期类型匹配的所有autowire候选者都可以被用于装配Bean。 如果预期的键类型为String,则可以自动装配强类型的Maps。 自动装配的强类型Maps值由预期类型匹配的所有Bean实例组成,而Maps键则与bean名称相对应。
您可以将autowire行为与依赖性检查相结合,这将在自动装配完成后执行。
当在整个项目中一致地使用自动装配时,自动装配效果最佳。一般情况下,如果不使用自动装配,那么开发人员就会对用它来装配一个或两个bean定义感到困惑。
自动装配的局限性和缺点:
在后一种情况下,你有几种选择:
在每个bean的基础上,您可以从自动装配中排除bean。 在Spring的XML格式中,将<bean />元素的autowire-candidate属性设置为false; 容器使指定的bean的定义对自动装配体系结构不可用(包括注解样式的配置,如@Autowired)。
您还可以基于bean名称的模式匹配来限制autowire候选者。顶级元素<beans />在其default-autowire-candidates属性中接受一个或多个匹配模式。例如,要将autowire候选状态限制为名称以Repository结尾的任何bean,可以提供值为* Repository。要提供多个模式,请在逗号分隔的列表中定义它们。bean定义autowire-candidate属性的显式值true或false始终具有更高的优先级,对于此类bean,模式匹配规则不适用。
对于您永远不希望通过自动装配注入其他的bean,这些技术是非常有用。这并不意味着被排除的bean本身不能使用自动装配进行配置,而是非自动装配其他bean的候选者。
Spring框架参考手册(4.2.6版本)翻译——第三部分 核心技术 6.4.5 自动装配
标签:one pac 组成 6.2 注解 cat 允许 多个 text
原文地址:https://www.cnblogs.com/springmorning/p/10339493.html