锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品国产手机,亚洲伊人久久大香线焦,久久久久亚洲av无码专区喷水http://m.tkk7.com/kangdy/category/49798.html鎴戝氨鍍廇K47閲屾墦鍑哄幓鐨勫瓙寮廣傜洰鏍嘥MD姘歌繙鍦ㄥ墠鏂廣傛垜鍙兘TMD鎷煎懡鍚戝墠銆?/description>zh-cnThu, 03 Nov 2011 03:32:51 GMTThu, 03 Nov 2011 03:32:51 GMT60(杞澆)Spring 娉ㄨВ@Component,@Service,@Controller,@Repositoryhttp://m.tkk7.com/kangdy/archive/2011/10/10/360402.htmlAK47AK47Mon, 10 Oct 2011 08:46:00 GMThttp://m.tkk7.com/kangdy/archive/2011/10/10/360402.htmlhttp://m.tkk7.com/kangdy/comments/360402.htmlhttp://m.tkk7.com/kangdy/archive/2011/10/10/360402.html#Feedback0http://m.tkk7.com/kangdy/comments/commentRss/360402.htmlhttp://m.tkk7.com/kangdy/services/trackbacks/360402.html

Spring 2.5 涓櫎浜嗘彁渚?@Component 娉ㄩ噴澶栵紝榪樺畾涔変簡鍑犱釜鎷ユ湁鐗規畩璇箟鐨勬敞閲婏紝瀹冧滑鍒嗗埆鏄細@Repository銆丂Service 鍜?@Controller銆傚湪鐩墠鐨?nbsp;Spring 鐗堟湰涓紝榪?3 涓敞閲婂拰 @Component 鏄瓑鏁堢殑錛屼絾鏄粠娉ㄩ噴綾葷殑鍛藉悕涓婏紝寰堝鏄撶湅鍑鴻繖 3 涓敞閲婂垎鍒拰鎸佷箙灞傘佷笟鍔″眰鍜屾帶鍒跺眰錛圵eb 灞傦級鐩稿搴斻傝櫧鐒剁洰鍓嶈繖 3 涓敞閲婂拰 @Component 鐩告瘮娌℃湁浠涔堟柊鎰忥紝浣?nbsp;Spring 灝嗗湪浠ュ悗鐨勭増鏈腑涓哄畠浠坊鍔犵壒孌婄殑鍔熻兘銆傛墍浠ワ紝濡傛灉 Web 搴旂敤紼嬪簭閲囩敤浜嗙粡鍏哥殑涓夊眰鍒嗗眰緇撴瀯鐨勮瘽錛屾渶濂藉湪鎸佷箙灞傘佷笟鍔″眰鍜屾帶鍒跺眰鍒嗗埆閲囩敤 @Repository銆丂Service 鍜?@Controller 瀵瑰垎灞備腑鐨勭被榪涜娉ㄩ噴錛岃岀敤 @Component 瀵歸偅浜涙瘮杈冧腑绔嬬殑綾昏繘琛屾敞閲娿?br />
鍦?涓涓◢澶х殑欏圭洰涓紝閫氬父浼氭湁涓婄櫨涓粍浠訛紝濡傛灉榪欎簺緇勪歡閲囩敤xml鐨刡ean瀹氫箟鏉ラ厤緗紝鏄劇劧浼氬鍔犻厤緗枃浠剁殑浣撶Н錛屾煡鎵句互鍙婄淮鎶よ搗鏉ヤ篃涓嶅お鏂逛究銆? Spring2.5涓烘垜浠紩鍏ヤ簡緇勪歡鑷姩鎵弿鏈哄埗錛屼粬鍙互鍦ㄧ被璺緞搴曚笅瀵繪壘鏍囨敞浜? @Component,@Service,@Controller,@Repository娉ㄨВ鐨勭被錛屽茍鎶婅繖浜涚被綰沖叆榪泂pring瀹瑰櫒涓鐞嗐傚畠鐨勪綔鐢?鍜屽湪xml鏂囦歡涓嬌鐢╞ean鑺傜偣閰嶇疆緇勪歡鏃朵竴鏍風殑銆傝浣跨敤鑷姩鎵弿鏈哄埗錛屾垜浠渶瑕佹墦寮浠ヤ笅閰嶇疆淇℃伅錛?nbsp;
Java浠g爜

1. <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-2.5.xsd"  
2. >  
3.   
4. <context:component-scan base-package=”com.eric.spring”>   
5. </beans>   
   /*鍏朵腑base-package涓洪渶瑕佹壂鎻忕殑鍖咃紙鍚墍鏈夊瓙鍖咃級

     @Service鐢ㄤ簬鏍囨敞涓氬姟灞傜粍浠訛紝

     @Controller鐢ㄤ簬鏍囨敞鎺у埗灞傜粍浠訛紙濡俿truts涓殑action錛?

     @Repository鐢ㄤ簬鏍囨敞鏁版嵁璁塊棶緇勪歡錛屽嵆DAO緇勪歡錛?/p>

     @Component娉涙寚緇勪歡錛屽綋緇勪歡涓嶅ソ褰掔被鐨勬椂鍊欙紝鎴戜滑鍙互浣跨敤榪欎釜娉ㄨВ榪涜鏍囨敞銆?/p>

    */   


6. @Service public class VentorServiceImpl implements iVentorService {   
7. } @Repository public class VentorDaoImpl implements iVentorDao {  
8. }

/*getBean鐨勯粯璁ゅ悕縐版槸綾誨悕錛堝ご瀛楁瘝灝?鍐欙級錛屽鏋滄兂鑷畾涔夛紝鍙互@Service(“aaaaa”)榪欐牱鏉ユ寚瀹氾紝榪欑bean榛樿鏄崟渚嬬殑錛屽鏋滄兂鏀瑰彉錛屽彲浠ヤ嬌鐢?@Service(“beanName”) @Scope(“prototype”)鏉ユ敼鍙樸傚彲浠ヤ嬌鐢ㄤ互涓嬫柟寮忔寚瀹氬垵濮嬪寲鏂規硶鍜岄攢姣佹柟娉曪紙鏂規硶鍚嶄換鎰忥級錛? @PostConstruct public void init() {  

*/
9. }  
10. @PreDestroy public void destory() {  
11. } 

娉ㄥ叆鏂瑰紡錛?/strong>

鎶?DAO瀹炵幇綾繪敞鍏ュ埌service瀹炵幇綾諱腑錛屾妸service鐨勬帴鍙?娉ㄦ剰涓嶈鏄痵ervice鐨勫疄鐜扮被)娉ㄥ叆鍒癮ction涓紝娉ㄥ叆鏃朵笉瑕乶ew 榪欎釜娉ㄥ叆鐨勭被錛屽洜涓簊pring浼氳嚜鍔ㄦ敞鍏ワ紝濡傛灉鎵嬪姩鍐峮ew鐨勮瘽浼氬嚭鐜伴敊璇紝鐒跺悗灞炴у姞涓夽Autowired鍚庝笉闇瑕乬etter()鍜?setter()鏂規硶錛孲pring涔熶細鑷姩娉ㄥ叆銆傝嚦浜庢洿鍏蜂綋鐨勫唴瀹癸紝絳夊娉ㄥ叆鐨勬柟寮忔洿鍔犵啛緇冨悗浼氬仛涓畬鏁寸殑渚嬪瓙涓婃潵銆?br />
娉ㄨВ錛?/strong>

鍦? spring鐨勯厤緗枃浠墮噷闈㈠彧闇瑕佸姞涓?lt;context:annotation-config/> 鍜?lt;context:component-scan base-package="闇瑕佸疄鐜版敞鍏ョ殑綾繪墍鍦ㄥ寘"/>錛屽彲浠ヤ嬌鐢╞ase-package="*"琛ㄧず鍏ㄩ儴鐨勭被銆?nbsp;  

<context:component-scan base-package=”com.eric.spring”> 

鍏朵腑base-package涓洪渶瑕佹壂鎻忕殑鍖咃紙鍚墍鏈夊瓙鍖咃級

鍦ㄦ帴鍙e墠闈㈡爣涓夽Autowired鍜孈Qualifier娉ㄩ噴浣垮緱鎺ュ彛鍙互琚鍣ㄦ敞鍏ワ紝褰撴帴鍙e瓨鍦ㄤ袱涓疄鐜扮被鐨勬椂鍊欏繀欏繪寚瀹氬叾涓竴涓潵娉ㄥ叆錛屼嬌鐢ㄥ疄鐜扮被棣栧瓧姣嶅皬鍐欑殑瀛楃涓叉潵娉ㄥ叆錛屽錛?/p>

  1.     @Autowired     
  2.   
  3.     @Qualifier("chinese")      
  4.   
  5.     private Man man;   

鍚﹀垯鍙互鐪佺暐錛屽彧鍐橜Autowired   銆?nbsp;

@Service鏈嶅姟灞傜粍浠訛紝鐢ㄤ簬鏍囨敞涓氬姟灞傜粍浠?琛ㄧず瀹氫箟涓涓猙ean錛岃嚜鍔ㄦ牴鎹産ean鐨勭被鍚嶅疄渚嬪寲涓涓鍐欏瓧姣嶄負灝忓啓鐨刡ean錛屼緥濡侰hinese瀹炰緥鍖栦負chinese錛屽鏋滈渶瑕佽嚜宸辨敼鍚嶅瓧鍒?@Service("浣犺嚜宸辨敼鐨刡ean鍚?)銆?nbsp;  

@Controller鐢ㄤ簬鏍囨敞鎺у埗灞傜粍浠?濡俿truts涓殑action)

@Repository鎸佷箙灞傜粍浠訛紝鐢ㄤ簬鏍囨敞鏁版嵁璁塊棶緇勪歡錛屽嵆DAO緇勪歡

@Component娉涙寚緇勪歡錛屽綋緇勪歡涓嶅ソ褰掔被鐨勬椂鍊欙紝鎴戜滑鍙互浣跨敤榪欎釜娉ㄨВ榪涜鏍囨敞銆?nbsp;


@Service 
public class VentorServiceImpl implements iVentorService { 
}

@Repository 
public class VentorDaoImpl implements iVentorDao { 


getBean 鐨勯粯璁ゅ悕縐版槸綾誨悕錛堝ご瀛楁瘝灝忓啓錛夛紝濡傛灉鎯寵嚜瀹氫箟錛屽彲浠Service(“aaaaa”) 榪欐牱鏉ユ寚瀹氾紝榪欑

bean榛樿鏄崟渚嬬殑錛屽鏋滄兂鏀瑰彉錛屽彲浠ヤ嬌鐢ˊService(“beanName”) @Scope(“prototype”)鏉ユ敼鍙樸?br />
鍙互浣跨敤浠ヤ笅鏂瑰紡鎸囧畾鍒濆鍖栨柟娉曞拰閿姣佹柟娉曪紙鏂規硶鍚嶄換鎰忥級錛?br />
@PostConstruct

public void init() { 



@PreDestroy

public void destory() { 

}



AK47 2011-10-10 16:46 鍙戣〃璇勮
]]>
(杞創)浣跨敤 Spring 2.5 娉ㄩ噴椹卞姩鐨?IoC 鍔熻兘http://m.tkk7.com/kangdy/archive/2011/10/10/360391.htmlAK47AK47Mon, 10 Oct 2011 07:49:00 GMThttp://m.tkk7.com/kangdy/archive/2011/10/10/360391.htmlhttp://m.tkk7.com/kangdy/comments/360391.htmlhttp://m.tkk7.com/kangdy/archive/2011/10/10/360391.html#Feedback0http://m.tkk7.com/kangdy/comments/commentRss/360391.htmlhttp://m.tkk7.com/kangdy/services/trackbacks/360391.html鍘熷笘鍦板潃錛?
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/

姒傝堪

娉ㄩ噴閰嶇疆鐩稿浜?XML 閰嶇疆鍏鋒湁寰堝鐨勪紭鍔匡細

  • 瀹冨彲浠ュ厖鍒嗗埄鐢?Java 鐨勫弽灝勬満鍒惰幏鍙栫被緇撴瀯淇℃伅錛岃繖浜涗俊鎭彲浠ユ湁鏁堝噺灝戦厤緗殑宸ヤ綔銆傚浣跨敤 JPA 娉ㄩ噴閰嶇疆 ORM 鏄犲皠鏃訛紝鎴戜滑灝變笉闇瑕佹寚瀹?PO 鐨勫睘鎬у悕銆佺被鍨嬬瓑淇℃伅錛屽鏋滃叧緋昏〃瀛楁鍜?PO 灞炴у悕銆佺被鍨嬮兘涓鑷達紝鎮ㄧ敋鑷蟲棤闇緙栧啓浠誨姟灞炴ф槧灝勪俊鎭?#8212;—鍥犱負榪欎簺淇℃伅閮藉彲浠ラ氳繃 Java 鍙嶅皠鏈哄埗鑾峰彇銆?/li>
  • 娉ㄩ噴鍜?Java 浠g爜浣嶄簬涓涓枃浠朵腑錛岃?XML 閰嶇疆閲囩敤鐙珛鐨勯厤緗枃浠訛紝澶у鏁伴厤緗俊鎭湪紼嬪簭寮鍙戝畬鎴愬悗閮戒笉浼氳皟鏁達紝濡傛灉閰嶇疆淇℃伅鍜?Java 浠g爜鏀懼湪涓璧鳳紝鏈夊姪浜庡寮虹▼搴忕殑鍐呰仛鎬с傝岄噰鐢ㄧ嫭绔嬬殑 XML 閰嶇疆鏂囦歡錛岀▼搴忓憳鍦ㄧ紪鍐欎竴涓姛鑳芥椂錛屽線寰闇瑕佸湪紼嬪簭鏂囦歡鍜岄厤緗枃浠朵腑涓嶅仠鍒囨崲錛岃繖縐嶆濈淮涓婄殑涓嶈繛璐細闄嶄綆寮鍙戞晥鐜囥?/li>

鍥犳鍦ㄥ緢澶氭儏鍐典笅錛屾敞閲婇厤緗瘮 XML 閰嶇疆鏇村彈嬈㈣繋錛屾敞閲婇厤緗湁榪涗竴姝ユ祦琛岀殑瓚嬪娍銆係pring 2.5 鐨勪竴澶у寮哄氨鏄紩鍏ヤ簡寰堝娉ㄩ噴綾伙紝鐜板湪鎮ㄥ凡緇忓彲浠ヤ嬌鐢ㄦ敞閲婇厤緗畬鎴愬ぇ閮ㄥ垎 XML 閰嶇疆鐨勫姛鑳姐傚湪榪欑瘒鏂囩珷閲岋紝鎴戜滑灝嗗悜鎮ㄨ榪頒嬌鐢ㄦ敞閲婅繘琛?Bean 瀹氫箟鍜屼緷璧栨敞鍏ョ殑鍐呭銆?/p>

 
鍘熸潵鎴戜滑鏄庝箞鍋氱殑      
鍦ㄤ嬌鐢ㄦ敞閲婇厤緗箣鍓嶏紝鍏堟潵鍥為【涓涓嬩紶緇熶笂鏄浣曢厤緗?Bean 騫跺畬鎴?Bean 涔嬮棿渚濊禆鍏崇郴鐨勫緩绔嬨備笅闈㈡槸 3 涓被錛屽畠浠垎鍒槸 Office銆丆ar 鍜?Boss錛岃繖 3 涓被闇瑕佸湪 Spring 瀹瑰櫒涓厤緗負 Bean錛?nbsp;   
   
Office 浠呮湁涓涓睘鎬э細    
     
娓呭崟 1. Office.java    
                    
package com.baobaotao;    
public class Office {    
    private String officeNo =”001”;    
   
    //鐪佺暐 get/setter    
   
    @Override   
    public String toString() {    
        return "officeNo:" + officeNo;    
    }    
}    
       
Car 鎷ユ湁涓や釜灞炴э細    
     
娓呭崟 2. Car.java 
                     
package com.baobaotao;    
   
public class Car {    
    private String brand;    
    private double price;    
   
    // 鐪佺暐 get/setter    
   
    @Override   
    public String toString() {    
        return "brand:" + brand + "," + "price:" + price;    
    }    
}    
      
Boss 鎷ユ湁 Office 鍜?Car 綾誨瀷鐨勪袱涓睘鎬э細    
  
娓呭崟 3. Boss.java    
                    
package com.baobaotao;    
   
public class Boss {    
    private Car car;    
    private Office office;    
   
    // 鐪佺暐 get/setter    
   
    @Override   
    public String toString() {    
        return "car:" + car + "\n" + "office:" + office;    
    }    
}    
    
鎴戜滑鍦?Spring 瀹瑰櫒涓皢 Office 鍜?Car 澹版槑涓?Bean錛屽茍娉ㄥ叆鍒?Boss Bean 涓細涓嬮潰鏄嬌鐢ㄤ紶緇?XML 瀹屾垚榪欎釜宸ヤ綔鐨勯厤緗枃浠?beans.xml錛?nbsp;   
    
娓呭崟 4. beans.xml 灝嗕互涓婁笁涓被閰嶇疆鎴?Bean    
                    
<?xml version="1.0" encoding="UTF-8" ?>    
<beans 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-2.5.xsd">    
    <bean id="boss" class="com.baobaotao.Boss">    
        <property name="car" ref="car"/>    
        <property name="office" ref="office" />    
    </bean>    
    <bean id="office" class="com.baobaotao.Office">    
        <property name="officeNo" value="002"/>    
    </bean>    
    <bean id="car" class="com.baobaotao.Car" scope="singleton">    
        <property name="brand" value=" 綰㈡棗 CA72"/>    
        <property name="price" value="2000"/>    
    </bean>    
</beans>    
     
褰撴垜浠繍琛屼互涓嬩唬鐮佹椂錛屾帶鍒跺彴灝嗘紜墦鍑?boss 鐨勪俊鎭細    
  
娓呭崟 5. 嫻嬭瘯綾伙細AnnoIoCTest.java    
                    
import org.springframework.context.ApplicationContext;    
import org.springframework.context.support.ClassPathXmlApplicationContext;    
public class AnnoIoCTest {    
   
    public static void main(String[] args) {    
        String[] locations = {"beans.xml"};    
        ApplicationContext ctx =     
            new ClassPathXmlApplicationContext(locations);    
        Boss boss = (Boss) ctx.getBean("boss");    
        System.out.println(boss);    
    }    
}    
    
榪欒鏄?Spring 瀹瑰櫒宸茬粡姝g‘瀹屾垚浜?Bean 鍒涘緩鍜岃閰嶇殑宸ヤ綔銆?nbsp;   
     
浣跨敤 @Autowired 娉ㄩ噴    
   
Spring 2.5 寮曞叆浜?@Autowired 娉ㄩ噴錛屽畠鍙互瀵圭被鎴愬憳鍙橀噺銆佹柟娉曞強鏋勯犲嚱鏁拌繘琛屾爣娉紝瀹屾垚鑷姩瑁呴厤鐨勫伐浣溿傛潵鐪嬩竴涓嬩嬌鐢?@Autowired 榪涜鎴愬憳鍙橀噺鑷姩娉ㄥ叆鐨勪唬鐮侊細    
  
娓呭崟 6. 浣跨敤 @Autowired 娉ㄩ噴鐨?Boss.java    
                    
package com.baobaotao;    
import org.springframework.beans.factory.annotation.Autowired;    
   
public class Boss {    
   
    @Autowired   
    private Car car;    
   
    @Autowired   
    private Office office;    
   
    …    
}    
       
Spring 閫氳繃涓涓?BeanPostProcessor 瀵?@Autowired 榪涜瑙f瀽錛屾墍浠ヨ璁?@Autowired 璧蜂綔鐢ㄥ繀欏諱簨鍏堝湪 Spring 瀹瑰櫒涓0鏄?AutowiredAnnotationBeanPostProcessor Bean銆?nbsp;  

娓呭崟 7. 璁?@Autowired 娉ㄩ噴宸ヤ綔璧鋒潵    
                    
<?xml version="1.0" encoding="UTF-8" ?>    
<beans 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-2.5.xsd">    
   
    <!-- 璇?BeanPostProcessor 灝嗚嚜鍔ㄨ搗浣滅敤錛屽鏍囨敞 @Autowired 鐨?Bean 榪涜鑷姩娉ㄥ叆 -->    
    <bean class="AutowiredAnnotationBeanPostProcessor  
        org.springframework.beans.factory.annotation.  "/>    
   
    <!-- 縐婚櫎 boss Bean 鐨勫睘鎬ф敞鍏ラ厤緗殑淇℃伅 -->    
    <bean id="boss" class="com.baobaotao.Boss"/>    
     
    <bean id="office" class="com.baobaotao.Office">    
        <property name="officeNo" value="001"/>    
    </bean>    
    <bean id="car" class="com.baobaotao.Car" scope="singleton">    
        <property name="brand" value=" 綰㈡棗 CA72"/>    
        <property name="price" value="2000"/>    
    </bean>    
</beans>    
     
    
榪?鏍鳳紝褰?Spring 瀹瑰櫒鍚姩鏃訛紝AutowiredAnnotationBeanPostProcessor 灝嗘壂鎻?Spring 瀹瑰櫒涓墍鏈? Bean錛屽綋鍙戠幇 Bean 涓嫢鏈?@Autowired 娉ㄩ噴鏃跺氨鎵懼埌鍜屽叾鍖歸厤錛堥粯璁ゆ寜綾誨瀷鍖歸厤錛夌殑 Bean錛屽茍娉ㄥ叆鍒板搴旂殑鍦版柟涓幓銆?nbsp;   
   
鎸?鐓т笂闈㈢殑閰嶇疆錛孲pring 灝嗙洿鎺ラ噰鐢?Java 鍙嶅皠鏈哄埗瀵?Boss 涓殑 car 鍜?office 榪欎袱涓鏈夋垚鍛樺彉閲忚繘琛岃嚜鍔ㄦ敞鍏ャ傛墍浠ュ鎴愬憳鍙橀噺浣跨敤 @Autowired 鍚庯紝鎮ㄥぇ鍙皢瀹冧滑鐨?setter 鏂規硶錛坰etCar() 鍜? setOffice()錛変粠 Boss 涓垹闄ゃ?nbsp;   
   
褰撶劧錛屾偍涔熷彲浠ラ氳繃 @Autowired 瀵規柟娉曟垨鏋勯犲嚱鏁拌繘琛屾爣娉紝鏉ョ湅涓嬮潰鐨勪唬鐮侊細    
    
娓呭崟 8. 灝?@Autowired 娉ㄩ噴鏍囨敞鍦?Setter 鏂規硶涓?nbsp;   
                    
package com.baobaotao;    
   
public class Boss {    
    private Car car;    
    private Office office;    
   
     @Autowired   
    public void setCar(Car car) {    
        this.car = car;    
    }    
     
    @Autowired   
    public void setOffice(Office office) {    
        this.office = office;    
    }    
    …    
}    
     
榪欐椂錛孈Autowired 灝嗘煡鎵捐鏍囨敞鐨勬柟娉曠殑鍏ュ弬綾誨瀷鐨?Bean錛屽茍璋冪敤鏂規硶鑷姩娉ㄥ叆榪欎簺 Bean銆傝屼笅闈㈢殑浣跨敤鏂規硶鍒欏鏋勯犲嚱鏁拌繘琛屾爣娉細    
    
娓呭崟 9. 灝?@Autowired 娉ㄩ噴鏍囨敞鍦ㄦ瀯閫犲嚱鏁頒笂    
                    
package com.baobaotao;    
   
public class Boss {    
    private Car car;    
    private Office office;    
     
    @Autowired   
    public Boss(Car car ,Office office){    
        this.car = car;    
        this.office = office ;    
    }    
     
    …    
}    
       
鐢變簬 Boss() 鏋勯犲嚱鏁版湁涓や釜鍏ュ弬錛屽垎鍒槸 car 鍜?office錛孈Autowired 灝嗗垎鍒鎵懼拰瀹冧滑綾誨瀷鍖歸厤鐨?Bean錛屽皢瀹冧滑浣滀負 Boss(Car car ,Office office) 鐨勫叆鍙傛潵鍒涘緩 Boss Bean銆?nbsp;   
     
褰撳欓?Bean 鏁扮洰涓嶄負 1 鏃剁殑搴斿鏂規硶    
   
鍦?榛樿鎯呭喌涓嬩嬌鐢?@Autowired 娉ㄩ噴榪涜鑷姩娉ㄥ叆鏃訛紝Spring 瀹瑰櫒涓尮閰嶇殑鍊欓?Bean 鏁扮洰蹇呴』鏈変笖浠呮湁涓涓傚綋鎵句笉鍒頒竴涓尮閰嶇殑 Bean 鏃訛紝Spring 瀹瑰櫒灝嗘姏鍑?BeanCreationException 寮傚父錛屽茍鎸囧嚭蹇呴』鑷沖皯鎷ユ湁涓涓尮閰嶇殑 Bean銆傛垜浠彲浠ユ潵鍋氫竴涓疄楠岋細    
   
   
娓呭崟 10. 鍊欓?Bean 鏁扮洰涓?0 鏃?nbsp;   
                    
<?xml version="1.0" encoding="UTF-8" ?>    
<beans 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-2.5.xsd ">    
     
    <bean class="AutowiredAnnotationBeanPostProcessor  
        org.springframework.beans.factory.annotation.  "/>     
   
    <bean id="boss" class="com.baobaotao.Boss"/>    
   
    <!-- 灝?office Bean 娉ㄩ噴鎺?-->    
    <!-- <bean id="office" class="com.baobaotao.Office">    
    <property name="officeNo" value="001"/>    
    </bean>-->    
   
    <bean id="car" class="com.baobaotao.Car" scope="singleton">    
        <property name="brand" value=" 綰㈡棗 CA72"/>    
        <property name="price" value="2000"/>    
    </bean>    
</beans>    
     
鐢變簬 office Bean 琚敞閲婃帀浜嗭紝鎵浠?Spring 瀹瑰櫒涓皢娌℃湁綾誨瀷涓?Office 鐨?Bean 浜嗭紝鑰?Boss 鐨?office 灞炴ф爣娉ㄤ簡 @Autowired錛屽綋鍚姩 Spring 瀹瑰櫒鏃訛紝寮傚父灝變駭鐢熶簡銆?nbsp;   
   
褰?涓嶈兘紜畾 Spring 瀹瑰櫒涓竴瀹氭嫢鏈夋煇涓被鐨?Bean 鏃訛紝鍙互鍦ㄩ渶瑕佽嚜鍔ㄦ敞鍏ヨ綾?Bean 鐨勫湴鏂瑰彲浠ヤ嬌鐢? @Autowired(required = false)錛岃繖絳変簬鍛婅瘔 Spring錛氬湪鎵句笉鍒板尮閰?Bean 鏃朵篃涓嶆姤閿欍傛潵鐪嬩竴涓嬪叿浣撶殑渚嬪瓙錛?nbsp;   
   
   
娓呭崟 11. 浣跨敤 @Autowired(required = false)    
                    
package com.baobaotao;    
   
import org.springframework.beans.factory.annotation.Autowired;    
import org.springframework.beans.factory.annotation.Required;    
   
public class Boss {    
   
    private Car car;    
    private Office office;    
   
    @Autowired   
    public void setCar(Car car) {    
        this.car = car;    
    }    
    @Autowired(required = false)    
    public void setOffice(Office office) {    
        this.office = office;    
    }    
    …    
}    
    
褰?鐒訛紝涓鑸儏鍐典笅錛屼嬌鐢?@Autowired 鐨勫湴鏂歸兘鏄渶瑕佹敞鍏?Bean 鐨勶紝浣跨敤浜嗚嚜鍔ㄦ敞鍏ヨ屽張鍏佽涓嶆敞鍏ョ殑鎯呭喌涓鑸粎浼氬湪寮鍙戞湡鎴栨祴璇曟湡紕板埌錛堝涓轟簡蹇熷惎鍔?Spring 瀹瑰櫒錛屼粎寮曞叆涓浜涙ā鍧楃殑 Spring 閰嶇疆鏂囦歡錛夛紝鎵浠?@Autowired(required = false) 浼氬緢灝戠敤鍒般?nbsp;   
   
鍜屾壘涓嶅埌涓涓被鍨嬪尮閰?Bean 鐩稿弽鐨勪竴涓敊璇槸錛氬鏋?Spring 瀹瑰櫒涓嫢鏈夊涓欓?Bean錛孲pring 瀹瑰櫒鍦ㄥ惎鍔ㄦ椂涔熶細鎶涘嚭 BeanCreationException 寮傚父銆傛潵鐪嬩笅闈㈢殑渚嬪瓙錛?nbsp;   
    
娓呭崟 12. 鍦?beans.xml 涓厤緗袱涓?Office 綾誨瀷鐨?Bean    
                    
…     
<bean id="office" class="com.baobaotao.Office">    
    <property name="officeNo" value="001"/>    
</bean>    
<bean id="office2" class="com.baobaotao.Office">    
    <property name="officeNo" value="001"/>    
</bean>    
…    
     
鎴戜滑鍦?Spring 瀹瑰櫒涓厤緗簡涓や釜綾誨瀷涓?Office 綾誨瀷鐨?Bean錛屽綋瀵?Boss 鐨?office 鎴愬憳鍙橀噺榪涜鑷姩娉ㄥ叆鏃訛紝Spring 瀹瑰櫒灝嗘棤娉曠‘瀹氬埌搴曡鐢ㄥ摢涓涓?Bean錛屽洜姝ゅ紓甯稿彂鐢熶簡銆?nbsp;   
   
Spring 鍏佽鎴戜滑閫氳繃 @Qualifier 娉ㄩ噴鎸囧畾娉ㄥ叆 Bean 鐨勫悕縐幫紝榪欐牱姝т箟灝辨秷闄や簡錛屽彲浠ラ氳繃涓嬮潰鐨勬柟娉曡В鍐沖紓甯革細    
  
娓呭崟 13. 浣跨敤 @Qualifier 娉ㄩ噴鎸囧畾娉ㄥ叆 Bean 鐨勫悕縐?nbsp;   
                    
@Autowired   
public void setOffice(@Qualifier("office")Office office) {    
    this.office = office;    
}    
    
 
@Qualifier("office") 涓殑 office 鏄?Bean 鐨勫悕縐幫紝鎵浠?@Autowired 鍜?@Qualifier 緇撳悎浣跨敤鏃訛紝鑷姩娉ㄥ叆鐨勭瓥鐣ュ氨浠?byType 杞彉鎴?byName 浜嗐侤Autowired 鍙互瀵規垚鍛樺彉閲忋佹柟娉曚互鍙婃瀯閫犲嚱鏁拌繘琛屾敞閲婏紝鑰?@Qualifier 鐨勬爣娉ㄥ璞℃槸鎴愬憳鍙橀噺銆佹柟娉曞叆鍙傘佹瀯閫犲嚱鏁板叆鍙傘傛鏄敱浜庢敞閲婂璞$殑涓嶅悓錛屾墍浠?Spring 涓嶅皢 @Autowired 鍜?@Qualifier 緇熶竴鎴愪竴涓敞閲婄被銆備笅闈㈡槸瀵規垚鍛樺彉閲忓拰鏋勯犲嚱鏁板叆鍙傝繘琛屾敞閲婄殑浠g爜錛?nbsp;   
   
瀵規垚鍛樺彉閲忚繘琛屾敞閲婏細    
  
娓呭崟 14. 瀵規垚鍛樺彉閲忎嬌鐢?@Qualifier 娉ㄩ噴    
                    
public class Boss {    
    @Autowired   
    private Car car;    
     
    @Autowired   
    @Qualifier("office")    
    private Office office;    
    …    
}    
     
    
瀵規瀯閫犲嚱鏁板叆鍙傝繘琛屾敞閲婏細    
    
娓呭崟 15. 瀵規瀯閫犲嚱鏁板彉閲忎嬌鐢?@Qualifier 娉ㄩ噴    
                    
public class Boss {    
    private Car car;    
    private Office office;    
   
    @Autowired   
    public Boss(Car car , @Qualifier("office")Office office){    
        this.car = car;    
        this.office = office ;    
    }    
}    
     
@Qualifier 鍙兘鍜?@Autowired 緇撳悎浣跨敤錛屾槸瀵?@Autowired 鏈夌泭鐨勮ˉ鍏呫備竴鑸潵璁詫紝@Qualifier 瀵規柟娉曠鍚嶄腑鍏ュ弬榪涜娉ㄩ噴浼氶檷浣庝唬鐮佺殑鍙鎬э紝鑰屽鎴愬憳鍙橀噺娉ㄩ噴鍒欑浉瀵瑰ソ涓浜涖?nbsp;   
    
   
浣跨敤 JSR-250 鐨勬敞閲?nbsp;   
   
Spring 涓嶄絾鏀寔鑷繁瀹氫箟鐨?@Autowired 鐨勬敞閲婏紝榪樻敮鎸佸嚑涓敱 JSR-250 瑙勮寖瀹氫箟鐨勬敞閲婏紝瀹冧滑鍒嗗埆鏄?@Resource銆丂PostConstruct 浠ュ強 @PreDestroy銆?nbsp;   
   
@Resource   
   
@Resource 鐨勪綔鐢ㄧ浉褰撲簬 @Autowired錛屽彧涓嶈繃 @Autowired 鎸?byType 鑷姩娉ㄥ叆錛岄潰 @Resource 榛樿鎸?byName 鑷姩娉ㄥ叆緗簡銆侤Resource 鏈変袱涓睘鎬ф槸姣旇緝閲嶈鐨勶紝鍒嗗埆鏄?name 鍜?type錛孲pring 灝?@Resource 娉ㄩ噴鐨?name 灞炴цВ鏋愪負 Bean 鐨勫悕瀛楋紝鑰?type 灞炴у垯瑙f瀽涓?Bean 鐨勭被鍨嬨傛墍浠ュ鏋滀嬌鐢?name 灞炴э紝鍒欎嬌鐢?byName 鐨勮嚜鍔ㄦ敞鍏ョ瓥鐣ワ紝鑰屼嬌鐢?type 灞炴ф椂鍒欎嬌鐢?byType 鑷姩娉ㄥ叆絳栫暐銆傚鏋滄棦涓嶆寚瀹?name 涔熶笉鎸囧畾 type 灞炴э紝榪欐椂灝嗛氳繃鍙嶅皠鏈哄埗浣跨敤 byName 鑷姩娉ㄥ叆絳栫暐銆?nbsp;   
   
Resource 娉ㄩ噴綾諱綅浜?Spring 鍙戝竷鍖呯殑 lib/j2ee/common-annotations.jar 綾誨寘涓紝鍥犳鍦ㄤ嬌鐢ㄤ箣鍓嶅繀欏誨皢鍏跺姞鍏ュ埌欏圭洰鐨勭被搴撲腑銆傛潵鐪嬩竴涓嬌鐢?@Resource 鐨勪緥瀛愶細    
   
娓呭崟 16. 浣跨敤 @Resource 娉ㄩ噴鐨?Boss.java    
                    
package com.baobaotao;    
   
import javax.annotation.Resource;    
   
public class Boss {    
    // 鑷姩娉ㄥ叆綾誨瀷涓?Car 鐨?Bean    
    @Resource   
    private Car car;    
   
    // 鑷姩娉ㄥ叆 bean 鍚嶇О涓?office 鐨?Bean    
    @Resource(name = "office")    
    private Office office;    
}    
     
涓鑸儏鍐典笅錛屾垜浠棤闇浣跨敤綾諱技浜?@Resource(type=Car.class) 鐨勬敞閲婃柟寮忥紝鍥犱負 Bean 鐨勭被鍨嬩俊鎭彲浠ラ氳繃 Java 鍙嶅皠浠庝唬鐮佷腑鑾峰彇銆?nbsp;   
   
瑕佽 JSR-250 鐨勬敞閲婄敓鏁堬紝闄や簡鍦?Bean 綾諱腑鏍囨敞榪欎簺娉ㄩ噴澶栵紝榪橀渶瑕佸湪 Spring 瀹瑰櫒涓敞鍐屼竴涓礋璐e鐞嗚繖浜涙敞閲婄殑 BeanPostProcessor錛?nbsp;   
   
<bean     
  class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>    
     
  
CommonAnnotationBeanPostProcessor 瀹炵幇浜?BeanPostProcessor 鎺ュ彛錛屽畠璐熻矗鎵弿浣跨敤浜?JSR-250 娉ㄩ噴鐨?Bean錛屽茍瀵瑰畠浠繘琛岀浉搴旂殑鎿嶄綔銆?nbsp;   
   
@PostConstruct 鍜?@PreDestroy   
   
Spring 瀹瑰櫒涓殑 Bean 鏄湁鐢熷懡鍛ㄦ湡鐨勶紝Spring 鍏佽鍦?Bean 鍦ㄥ垵濮嬪寲瀹屾垚鍚庝互鍙?Bean 閿姣佸墠鎵ц鐗瑰畾鐨勬搷浣滐紝鎮ㄦ棦鍙互閫氳繃瀹炵幇 InitializingBean/DisposableBean 鎺ュ彛鏉ュ畾鍒跺垵濮嬪寲涔嬪悗 / 閿姣佷箣鍓嶇殑鎿嶄綔鏂規硶錛屼篃鍙互閫氳繃 <bean> 鍏冪礌鐨?init-method/destroy-method 灞炴ф寚瀹氬垵濮嬪寲涔嬪悗 / 閿姣佷箣鍓嶈皟鐢ㄧ殑鎿嶄綔鏂規硶銆傚叧浜? Spring 鐨勭敓鍛藉懆鏈燂紝絎旇呭湪銆婄簿閫?Spring 2.x—浼佷笟搴旂敤寮鍙戠簿瑙c嬬 3 绔犺繘琛屼簡璇︾粏鐨勬弿榪幫紝鏈夊叴瓚g殑璇昏呭彲浠ユ煡闃呫?nbsp;   
   
JSR-250 涓哄垵濮嬪寲涔嬪悗/閿姣佷箣鍓嶆柟娉曠殑鎸囧畾瀹氫箟浜嗕袱涓敞閲婄被錛屽垎鍒槸 @PostConstruct 鍜? @PreDestroy錛岃繖涓や釜娉ㄩ噴鍙兘搴旂敤浜庢柟娉曚笂銆傛爣娉ㄤ簡 @PostConstruct 娉ㄩ噴鐨勬柟娉曞皢鍦ㄧ被瀹炰緥鍖栧悗璋冪敤錛岃屾爣娉ㄤ簡 @PreDestroy 鐨勬柟娉曞皢鍦ㄧ被閿姣佷箣鍓嶈皟鐢ㄣ?nbsp;   
  
娓呭崟 17. 浣跨敤 @PostConstruct 鍜?@PreDestroy 娉ㄩ噴鐨?Boss.java    
                    
package com.baobaotao;    
   
import javax.annotation.Resource;    
import javax.annotation.PostConstruct;    
import javax.annotation.PreDestroy;    
   
public class Boss {    
    @Resource   
    private Car car;    
   
    @Resource(name = "office")    
    private Office office;    
   
    @PostConstruct   
    public void postConstruct1(){    
        System.out.println("postConstruct1");    
    }    
   
    @PreDestroy   
    public void preDestroy1(){    
        System.out.println("preDestroy1");     
    }    
    …    
}    
     
鎮ㄥ彧闇瑕佸湪鏂規硶鍓嶆爣娉?@PostConstruct 鎴?@PreDestroy錛岃繖浜涙柟娉曞氨浼氬湪 Bean 鍒濆鍖栧悗鎴栭攢姣佷箣鍓嶈 Spring 瀹瑰櫒鎵ц浜嗐?nbsp;   
   
鎴?浠煡閬擄紝涓嶇鏄氳繃瀹炵幇 InitializingBean/DisposableBean 鎺ュ彛錛岃繕鏄氳繃 <bean> 鍏冪礌鐨? init-method/destroy-method 灞炴ц繘琛岄厤緗紝閮藉彧鑳戒負 Bean 鎸囧畾涓涓垵濮嬪寲 / 閿姣佺殑鏂規硶銆備絾鏄嬌鐢? @PostConstruct 鍜?@PreDestroy 娉ㄩ噴鍗村彲浠ユ寚瀹氬涓垵濮嬪寲 / 閿姣佹柟娉曪紝閭d簺琚爣娉?@PostConstruct 鎴? @PreDestroy 娉ㄩ噴鐨勬柟娉曢兘浼氬湪鍒濆鍖?/ 閿姣佹椂琚墽琛屻?nbsp;   
   
閫氳繃浠ヤ笅鐨勬祴璇曚唬鐮侊紝鎮ㄥ皢鍙互鐪嬪埌 Bean 鐨勫垵濮嬪寲 / 閿姣佹柟娉曟槸濡備綍琚墽琛岀殑錛?nbsp;   
  
娓呭崟 18. 嫻嬭瘯綾諱唬鐮?nbsp;   
                    
package com.baobaotao;    
   
import org.springframework.context.support.ClassPathXmlApplicationContext;    
   
public class AnnoIoCTest {    
   
    public static void main(String[] args) {    
        String[] locations = {"beans.xml"};    
        ClassPathXmlApplicationContext ctx =     
            new ClassPathXmlApplicationContext(locations);    
        Boss boss = (Boss) ctx.getBean("boss");    
        System.out.println(boss);    
        ctx.destroy();// 鍏抽棴 Spring 瀹瑰櫒錛屼互瑙﹀彂 Bean 閿姣佹柟娉曠殑鎵ц    
    }    
}    
     
   
榪?鏃訛紝鎮ㄥ皢鐪嬪埌鏍囨敞浜?@PostConstruct 鐨?postConstruct1() 鏂規硶灝嗗湪 Spring 瀹瑰櫒鍚姩鏃訛紝鍒涘緩 Boss Bean 鐨勬椂鍊欒瑙﹀彂鎵ц錛岃屾爣娉ㄤ簡 @PreDestroy 娉ㄩ噴鐨?preDestroy1() 鏂規硶灝嗗湪 Spring 瀹瑰櫒鍏抽棴鍓嶉攢姣? Boss Bean 鐨勬椂鍊欒瑙﹀彂鎵ц銆?nbsp;   
       
浣跨敤 <context:annotation-config/> 綆鍖栭厤緗?nbsp;   
   
Spring 2.1 娣誨姞浜嗕竴涓柊鐨?context 鐨?Schema 鍛藉悕絀洪棿錛岃鍛藉悕絀洪棿瀵規敞閲婇┍鍔ㄣ佸睘鎬ф枃浠跺紩鍏ャ佸姞杞芥湡緇囧叆絳夊姛鑳芥彁渚涗簡渚挎嵎鐨勯厤緗傛垜浠煡閬撴敞閲婃湰韜槸涓嶄細鍋氫換浣曚簨鎯呯殑錛屽畠浠呮彁渚涘厓鏁版嵁淇℃伅銆傝浣垮厓鏁?鎹俊鎭湡姝h搗浣滅敤錛屽繀欏昏璐熻矗澶勭悊榪欎簺鍏冩暟鎹殑澶勭悊鍣ㄥ伐浣滆搗鏉ャ?nbsp;    
   
鑰屾垜浠墠闈㈡墍浠嬬粛鐨? AutowiredAnnotationBeanPostProcessor 鍜?CommonAnnotationBeanPostProcessor 灝辨槸澶勭悊榪欎簺娉ㄩ噴鍏冩暟鎹殑澶勭悊鍣ㄣ備絾鏄洿鎺ュ湪 Spring 閰嶇疆鏂囦歡涓畾涔夎繖浜?Bean 鏄懼緱姣旇緝絎ㄦ嫏銆係pring 涓烘垜浠彁渚涗簡涓縐嶆柟渚跨殑娉ㄥ唽榪欎簺 BeanPostProcessor 鐨勬柟寮忥紝榪欏氨鏄? <context:annotation-config/>銆傝鐪嬩笅闈㈢殑閰嶇疆錛?nbsp;   
     
娓呭崟 19. 璋冩暣 beans.xml 閰嶇疆鏂囦歡    
                    
<?xml version="1.0" encoding="UTF-8" ?>    
<beans xmlns="http://www.springframework.org/schema/beans"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
     xmlns:context="http://www.springframework.org/schema/context"   
     xsi:schemaLocation="http://www.springframework.org/schema/beans     
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
 http://www.springframework.org/schema/context     
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">    
     
    <context:annotation-config/>     
   
    <bean id="boss" class="com.baobaotao.Boss"/>    
    <bean id="office" class="com.baobaotao.Office">    
        <property name="officeNo" value="001"/>    
    </bean>    
    <bean id="car" class="com.baobaotao.Car" scope="singleton">    
        <property name="brand" value=" 綰㈡棗 CA72"/>    
        <property name="price" value="2000"/>    
    </bean>    
</beans>    
      
<context:annotationconfig/> 灝嗛殣寮忓湴鍚?Spring 瀹瑰櫒娉ㄥ唽 AutowiredAnnotationBeanPostProcessor銆丆ommonAnnotationBeanPostProcessor銆?PersistenceAnnotationBeanPostProcessor 浠ュ強 equiredAnnotationBeanPostProcessor 榪?4 涓?BeanPostProcessor銆?nbsp;   
   
鍦ㄩ厤緗枃浠朵腑浣跨敤 context 鍛藉悕絀洪棿涔嬪墠錛屽繀欏誨湪 <beans> 鍏冪礌涓0鏄?context 鍛藉悕絀洪棿銆?nbsp;   
   
    
浣跨敤 @Component   
   
铏?鐒舵垜浠彲浠ラ氳繃 @Autowired 鎴?@Resource 鍦?Bean 綾諱腑浣跨敤鑷姩娉ㄥ叆鍔熻兘錛屼絾鏄?Bean 榪樻槸鍦?XML 鏂囦歡涓氳繃 <bean> 榪涜瀹氫箟 —— 涔熷氨鏄錛屽湪 XML 閰嶇疆鏂囦歡涓畾涔?Bean錛岄氳繃 @Autowired 鎴?@Resource 涓? Bean 鐨勬垚鍛樺彉閲忋佹柟娉曞叆鍙傛垨鏋勯犲嚱鏁板叆鍙傛彁渚涜嚜鍔ㄦ敞鍏ョ殑鍔熻兘銆傝兘鍚︿篃閫氳繃娉ㄩ噴瀹氫箟 Bean錛屼粠 XML 閰嶇疆鏂囦歡涓畬鍏ㄧЩ闄?Bean 瀹氫箟鐨勯厤緗憿錛熺瓟妗堟槸鑲畾鐨勶紝鎴戜滑閫氳繃 Spring 2.5 鎻愪緵鐨?@Component 娉ㄩ噴灝卞彲浠ヨ揪鍒拌繖涓洰鏍囦簡銆?nbsp;   
   
涓嬮潰錛屾垜浠畬鍏ㄤ嬌鐢ㄦ敞閲婂畾涔?Bean 騫跺畬鎴?Bean 涔嬮棿瑁呴厤錛?nbsp;   
   
   
娓呭崟 20. 浣跨敤 @Component 娉ㄩ噴鐨?Car.java    
                    
package com.baobaotao;    
   
import org.springframework.stereotype.Component;    
   
@Component   
public class Car {    
    …    
}    
     
     
浠呴渶瑕佸湪綾誨畾涔夊錛屼嬌鐢?@Component 娉ㄩ噴灝卞彲浠ュ皢涓涓被瀹氫箟浜?Spring 瀹瑰櫒涓殑 Bean銆備笅闈㈢殑浠g爜灝?Office 瀹氫箟涓轟竴涓?Bean錛?nbsp;   
    
娓呭崟 21. 浣跨敤 @Component 娉ㄩ噴鐨?Office.java    
                    
package com.baobaotao;    
   
import org.springframework.stereotype.Component;    
   
@Component   
public class Office {    
    private String officeNo = "001";    
    …    
}    
     
榪欐牱錛屾垜浠氨鍙互鍦?Boss 綾諱腑閫氳繃 @Autowired 娉ㄥ叆鍓嶉潰瀹氫箟鐨?Car 鍜?Office Bean 浜嗐?nbsp;   
   
娓呭崟 22. 浣跨敤 @Component 娉ㄩ噴鐨?Boss.java    
                    
package com.baobaotao;    
   
import org.springframework.beans.factory.annotation.Autowired;    
import org.springframework.beans.factory.annotation.Required;    
import org.springframework.beans.factory.annotation.Qualifier;    
import org.springframework.stereotype.Component;    
   
@Component("boss")    
public class Boss {    
    @Autowired   
    private Car car;    
   
    @Autowired   
    private Office office;    
    …    
}    
    
@Component 鏈変竴涓彲閫夌殑鍏ュ弬錛岀敤浜庢寚瀹?Bean 鐨勫悕縐幫紝鍦?Boss 涓紝鎴戜滑灝卞皢 Bean 鍚嶇О瀹氫箟涓?#8220;boss”銆備竴鑸儏鍐典笅錛孊ean 閮芥槸 singleton 鐨勶紝闇瑕佹敞鍏?Bean 鐨勫湴鏂逛粎闇瑕侀氳繃 byType 絳栫暐灝卞彲浠ヨ嚜鍔ㄦ敞鍏ヤ簡錛屾墍浠ュぇ鍙笉蹇呮寚瀹?Bean 鐨勫悕縐般?nbsp;   
   
鍦ㄤ嬌鐢?@Component 娉ㄩ噴鍚庯紝Spring 瀹瑰櫒蹇呴』鍚敤綾繪壂鎻忔満鍒朵互鍚敤娉ㄩ噴椹卞姩 Bean 瀹氫箟鍜屾敞閲婇┍鍔?Bean 鑷姩娉ㄥ叆鐨勭瓥鐣ャ係pring 2.5 瀵?context 鍛藉悕絀洪棿榪涜浜嗘墿灞曪紝鎻愪緵浜嗚繖涓鍔熻兘錛岃鐪嬩笅闈㈢殑閰嶇疆錛?nbsp;   
    
娓呭崟 23. 綆鍖栫増鐨?beans.xml    
                    
<?xml version="1.0" encoding="UTF-8" ?>    
<beans xmlns="http://www.springframework.org/schema/beans"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:context="http://www.springframework.org/schema/context"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans     
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
 http://www.springframework.org/schema/context     
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">    
    <context:component-scan base-package="com.baobaotao"/>    
</beans>    
      
榪?閲岋紝鎵鏈夐氳繃 <bean> 鍏冪礌瀹氫箟 Bean 鐨勯厤緗唴瀹瑰凡緇忚縐婚櫎錛屼粎闇瑕佹坊鍔犱竴琛? <context:component-scan/> 閰嶇疆灝辮В鍐蟲墍鏈夐棶棰樹簡——Spring XML 閰嶇疆鏂囦歡寰楀埌浜嗘瀬鑷寸殑綆鍖栵紙褰撶劧閰嶇疆鍏冩暟鎹繕鏄渶瑕佺殑錛屽彧涓嶈繃浠ユ敞閲婂艦寮忓瓨鍦ㄧ艦浜嗭級銆?lt;context:component-scan/> 鐨? base-package 灞炴ф寚瀹氫簡闇瑕佹壂鎻忕殑綾誨寘錛岀被鍖呭強鍏墮掑綊瀛愬寘涓墍鏈夌殑綾婚兘浼氳澶勭悊銆?nbsp;   
   
<context:component-scan/> 榪樺厑璁稿畾涔夎繃婊ゅ櫒灝嗗熀鍖呬笅鐨勬煇浜涚被綰沖叆鎴栨帓闄ゃ係pring 鏀寔浠ヤ笅 4 縐嶇被鍨嬬殑榪囨護鏂瑰紡錛岄氳繃涓嬭〃璇存槑錛?nbsp;   
   
琛?1. 鎵弿榪囨護鏂瑰紡    
榪囨護鍣ㄧ被鍨?璇存槑     
娉ㄩ噴 鍋囧 com.baobaotao.SomeAnnotation 鏄竴涓敞閲婄被錛屾垜浠彲浠ュ皢浣跨敤璇ユ敞閲婄殑綾昏繃婊ゅ嚭鏉ャ?nbsp;    
綾誨悕鎸囧畾 閫氳繃鍏ㄩ檺瀹氱被鍚嶈繘琛岃繃婊わ紝濡傛偍鍙互鎸囧畾灝?com.baobaotao.Boss 綰沖叆鎵弿錛岃屽皢 com.baobaotao.Car 鎺掗櫎鍦ㄥ銆?nbsp;    
姝e垯琛ㄨ揪寮?閫氳繃姝e垯琛ㄨ揪寮忓畾涔夎繃婊ょ殑綾伙紝濡備笅鎵紺猴細 com\.baobaotao\.Default.*     
AspectJ 琛ㄨ揪寮?閫氳繃 AspectJ 琛ㄨ揪寮忓畾涔夎繃婊ょ殑綾伙紝濡備笅鎵紺猴細 com. baobaotao..*Service+     
   
涓嬮潰鏄竴涓畝鍗曠殑渚嬪瓙錛?nbsp;   
   
<context:component-scan base-package="com.baobaotao">    
    <context:include-filter type="regex"     
        expression="com\.baobaotao\.service\..*"/>    
    <context:exclude-filter type="aspectj"     
        expression="com.baobaotao.util..*"/>    
</context:component-scan>    
      
鍊?寰楁敞鎰忕殑鏄?<context:component-scan/> 閰嶇疆欏逛笉浣嗗惎鐢ㄤ簡瀵圭被鍖呰繘琛屾壂鎻忎互瀹炴柦娉ㄩ噴椹卞姩 Bean 瀹氫箟鐨勫姛鑳斤紝鍚屾椂榪樺惎鐢ㄤ簡娉ㄩ噴椹卞姩鑷姩娉ㄥ叆鐨勫姛鑳斤紙鍗寵繕闅愬紡鍦板湪鍐呴儴娉ㄥ唽浜?AutowiredAnnotationBeanPostProcessor 鍜?CommonAnnotationBeanPostProcessor錛夛紝鍥犳褰撲嬌鐢? <context:component-scan/> 鍚庯紝灝卞彲浠ュ皢 <context:annotation-config/> 縐婚櫎浜嗐?nbsp;   
   
榛樿鎯呭喌涓嬮氳繃 @Component 瀹氫箟鐨?Bean 閮芥槸 singleton 鐨勶紝濡傛灉闇瑕佷嬌鐢ㄥ叾瀹冧綔鐢ㄨ寖鍥寸殑 Bean錛屽彲浠ラ氳繃 @Scope 娉ㄩ噴鏉ヨ揪鍒扮洰鏍囷紝濡備互涓嬩唬鐮佹墍紺猴細    
   
娓呭崟 24. 閫氳繃 @Scope 鎸囧畾 Bean 鐨勪綔鐢ㄨ寖鍥?nbsp;   
                    
package com.baobaotao;    
import org.springframework.context.annotation.Scope;    
…    
@Scope("prototype")    
@Component("boss")    
public class Boss {    
    …    
}    
     
榪欐牱錛屽綋浠?Spring 瀹瑰櫒涓幏鍙?boss Bean 鏃訛紝姣忔榪斿洖鐨勯兘鏄柊鐨勫疄渚嬩簡銆?nbsp;   
      
閲囩敤鍏鋒湁鐗規畩璇箟鐨勬敞閲?nbsp;   
   
Spring 2.5 涓櫎浜嗘彁渚?@Component 娉ㄩ噴澶栵紝榪樺畾涔変簡鍑犱釜鎷ユ湁鐗規畩璇箟鐨勬敞閲婏紝瀹冧滑鍒嗗埆鏄細@Repository銆丂Service 鍜? @Controller銆傚湪鐩墠鐨?Spring 鐗堟湰涓紝榪?3 涓敞閲婂拰 @Component 鏄瓑鏁堢殑錛屼絾鏄粠娉ㄩ噴綾葷殑鍛藉悕涓婏紝寰堝鏄撶湅鍑鴻繖 3 涓敞閲婂垎鍒拰鎸佷箙灞傘佷笟鍔″眰鍜屾帶鍒跺眰錛圵eb 灞傦級鐩稿搴斻傝櫧鐒剁洰鍓嶈繖 3 涓敞閲婂拰 @Component 鐩告瘮娌℃湁浠涔堟柊鎰忥紝浣?Spring 灝嗗湪浠ュ悗鐨勭増鏈腑涓哄畠浠坊鍔犵壒孌婄殑鍔熻兘銆傛墍浠ワ紝濡傛灉 Web 搴旂敤紼嬪簭閲囩敤浜嗙粡鍏哥殑涓夊眰鍒嗗眰緇撴瀯鐨勮瘽錛屾渶濂藉湪鎸佷箙灞傘佷笟鍔″眰鍜屾帶鍒跺眰鍒嗗埆閲囩敤 @Repository銆丂Service 鍜?@Controller 瀵瑰垎灞備腑鐨勭被榪涜娉ㄩ噴錛岃岀敤 @Component 瀵歸偅浜涙瘮杈冧腑绔嬬殑綾昏繘琛屾敞閲娿?nbsp;   
        
娉ㄩ噴閰嶇疆鍜?XML 閰嶇疆鐨勯傜敤鍦哄悎    
   
鏄惁鏈変簡榪欎簺 IOC 娉ㄩ噴錛屾垜浠氨鍙互瀹屽叏鎽掗櫎鍘熸潵 XML 閰嶇疆鐨勬柟寮忓憿錛熺瓟妗堟槸鍚﹀畾鐨勩傛湁浠ヤ笅鍑犵偣鍘熷洜錛?nbsp;   
   
娉?閲婇厤緗笉涓瀹氬湪鍏堝ぉ涓婁紭浜?XML 閰嶇疆銆傚鏋?Bean 鐨勪緷璧栧叧緋繪槸鍥哄畾鐨勶紝錛堝 Service 浣跨敤浜嗗摢鍑犱釜 DAO 綾伙級錛岃繖縐嶉厤緗俊鎭笉浼氬湪閮ㄧ講鏃跺彂鐢熻皟鏁達紝閭d箞娉ㄩ噴閰嶇疆浼樹簬 XML 閰嶇疆錛涘弽涔嬪鏋滆繖縐嶄緷璧栧叧緋諱細鍦ㄩ儴緗叉椂鍙戠敓璋冩暣錛孹ML 閰嶇疆鏄劇劧鍙堜紭浜庢敞閲婇厤緗紝鍥犱負娉ㄩ噴鏄 Java 婧愪唬鐮佺殑璋冩暣錛屾偍闇瑕侀噸鏂版敼鍐欐簮浠g爜騫墮噸鏂扮紪璇戞墠鍙互瀹炴柦璋冩暣銆?nbsp;    
濡傛灉 Bean 涓嶆槸鑷繁緙栧啓鐨勭被錛堝 JdbcTemplate銆丼essionFactoryBean 絳夛級錛屾敞閲婇厤緗皢鏃犳硶瀹炴柦錛屾鏃?XML 閰嶇疆鏄敮涓鍙敤鐨勬柟寮忋?nbsp;    
娉ㄩ噴閰嶇疆寰寰鏄被綰у埆鐨勶紝鑰?XML 閰嶇疆鍒欏彲浠ヨ〃鐜板緱鏇村姞鐏墊椿銆傛瘮濡傜浉姣斾簬 @Transaction 浜嬪姟娉ㄩ噴錛屼嬌鐢?aop/tx 鍛藉悕絀洪棿鐨勪簨鍔¢厤緗洿鍔犵伒媧誨拰綆鍗曘?nbsp;    
鎵 浠ュ湪瀹炵幇搴旂敤涓紝鎴戜滑寰寰闇瑕佸悓鏃朵嬌鐢ㄦ敞閲婇厤緗拰 XML 閰嶇疆錛屽浜庣被綰у埆涓斾笉浼氬彂鐢熷彉鍔ㄧ殑閰嶇疆鍙互浼樺厛鑰冭檻娉ㄩ噴閰嶇疆錛涜屽浜庨偅浜涚涓夋柟綾諱互鍙婂鏄撳彂鐢熻皟鏁寸殑閰嶇疆鍒欏簲浼樺厛鑰冭檻浣跨敤 XML 閰嶇疆銆係pring 浼氬湪鍏蜂綋瀹炴柦 Bean 鍒涘緩鍜?Bean 娉ㄥ叆涔嬪墠灝嗚繖涓ょ閰嶇疆鏂瑰紡鐨勫厓淇℃伅铻嶅悎鍦ㄤ竴璧楓?nbsp;   
       
灝忕粨    
   
Spring 鍦?2.1 浠ュ悗瀵規敞閲婇厤緗彁渚涗簡寮哄姏鐨勬敮鎸侊紝娉ㄩ噴閰嶇疆鍔熻兘鎴愪負 Spring 2.5 鐨勬渶澶х殑浜偣涔嬩竴銆傚悎鐞嗗湴浣跨敤 Spring 2.5 鐨勬敞閲婇厤緗紝鍙互鏈夋晥鍑忓皯閰嶇疆鐨勫伐浣滈噺錛屾彁楂樼▼搴忕殑鍐呰仛鎬с備絾鏄繖騫朵笉鎰忓懗鐫浼犵粺 XML 閰嶇疆灝嗚蛋鍚戞秷浜★紝鍦ㄧ涓夋柟綾?Bean 鐨勯厤緗紝浠ュ強閭d簺璇稿鏁版嵁婧愩佺紦瀛樻睜銆佹寔涔呭眰鎿嶄綔妯℃澘綾匯佷簨鍔$鐞嗙瓑鍐呭鐨勯厤緗笂錛孹ML 閰嶇疆渚濈劧鎷ユ湁涓嶅彲鏇夸唬鐨勫湴浣嶃?/div>

AK47 2011-10-10 15:49 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 亚洲欧洲国产综合AV无码久久| 亚洲一区二区在线免费观看| 国产精品亚洲mnbav网站| 最好免费观看高清在线| 99在线观看精品免费99| 最近最新中文字幕完整版免费高清| 香蕉高清免费永久在线视频| 亚洲第一区在线观看| 国产午夜免费秋霞影院| 亚洲午夜精品一级在线播放放| 人人狠狠综合久久亚洲88| 亚洲国产成人在线视频| 粉色视频免费入口| 日本免费污片中国特一级| 久久久精品午夜免费不卡| 在线观看片免费人成视频无码 | 自拍日韩亚洲一区在线| 亚洲毛片在线免费观看| 亚洲乱亚洲乱妇24p| 精品一区二区三区免费视频| a毛片成人免费全部播放| aa级女人大片喷水视频免费| 18禁止看的免费污网站| 免费H网站在线观看的| 青青久在线视频免费观看| 嫩草影院在线免费观看| 久久精品国产亚洲AV不卡| 亚洲欧洲∨国产一区二区三区| 亚洲高清不卡视频| 美女视频黄频a免费观看| 国产精品白浆在线观看免费| 午夜时刻免费入口| 亚洲成AV人片在线观看| 亚洲精品av无码喷奶水糖心| 美女黄网站人色视频免费| 2021在线观看视频精品免费| 免费一级毛片在播放视频| 亚洲精品福利网泷泽萝拉| 人碰人碰人成人免费视频| 日韩精品无码免费专区午夜不卡| 亚洲免费网站观看视频|