`
Just-Do-it
  • 浏览: 28157 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring自动装配模式之:byName的解析

阅读更多
Spring自动装配模式二:byName的解析

自己简述:byName,就是要设置自动装载为byName的Bean,如果该BEAN中有某一个属性,那么,它就会在该配置文件XML中,找到与之相同ID或者NAME的BEAN,让这个BEAN装载原BEAN。

根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为byName,而该bean包含homeAddressServiceImpl属性(同时提供setHomeAddressServiceImpl(..)方法),Spring就会查找名为homeAddressServiceImpl的bean定义,并用它来装配给homeAddressServiceImpl属性。

配置文件如下:

<bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl"

     scope="singleton">

     <property name="address">

        <value>北京海淀上地软件园</value>

     </property>

</bean>

<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"

     scope="singleton" autowire="byName" />



cn.csdn.service.HomeAddressServiceImpl代码

public class HomeAddressServiceImpl extends AddressServiceImpl {


private String address;


public void setAddress(String address){

     this.address=address;

}




public HomeAddressServiceImpl() {

     super();

}







public HomeAddressServiceImpl(String address){

     this.address=address;

}



}



cn.csdn.service.EmpServiceImpl 代码

package cn.csdn.service;

public class EmpServiceImpl {



private HomeAddressServiceImpl homeAddressServiceImpl;



public void setHomeAddressServiceImpl(

        HomeAddressServiceImpl homeAddressServiceImpl) {

     this.homeAddressServiceImpl = homeAddressServiceImpl;

}



}

分享到:
评论
1 楼 kingpeixin 2012-04-28  
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl"

     scope="singleton" autowire="byName" />
再加上lazy-init=true
这个是什么样的结果呢

相关推荐

Global site tag (gtag.js) - Google Analytics