模式|Spring 自动装配模式之byType


Spring 容器看作 beans , 在 XML 配置文件中 beans 的 autowire 属性设置为 byType 。 然后 , 如果它的 type 恰好与配置文件中 beans 名称中的一个相匹配 , 它将尝试匹配和连接它的属性 。 如果找到匹配项 , 它将注入这些 beans , 否则 , 它将抛出异常 。
在配置文件中 , 如果一个 bean 定义设置为自动装配 byType , 并且它包含 SpellChecker 类型的 spellChecker 属性 , 那么 Spring 就会查找定义名为 SpellChecker 的 bean , 并且用它来设置这个属性 。 你仍然可以使用标签连接其余属性 。
看个例子:
TextEditor:
public class TextEditor { private SpellChecker spellChecker private String name public void setSpellChecker( SpellChecker spellChecker ) { this.spellChecker = spellChecker } public SpellChecker getSpellChecker() { return spellChecker } public void setName(String name) { this.name = name } public String getName() { return name } public void spellCheck() { spellChecker.checkSpelling() }}
正常情况下beans.xml里的显式装配:
模式|Spring 自动装配模式之byType
本文插图

采用by Name自动装配的beans.xml写法:

&ltbeans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"&gt&ltbean id="textEditor" class="com.sap.TextEditor"autowire="byType"&gt &ltproperty name="name" value="http://news.hoteastday.com/a/Generic Text Editor" /&gt bean&gt
&ltbean id="SpellChecker" class="com.sap.SpellChecker"&gt bean&gtbeans&gt 可以看到 , 在by Type自动装配模式下 , beans.xml里的spellChecker bean的ID可以随便取 , 因为这个属性是为by Name装配模式服务的 , 在by Type模式下忽略 。
声明:转载此文是出于传递更多信息之目的 。 若有来源标注错误或侵犯了您的合法权益 , 请作者持权属证明与本网联系 , 我们将及时更正、删除 , 谢谢 。邮箱地址:newmedia@xxcb.cn
【模式|Spring 自动装配模式之byType】


    推荐阅读