亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Spring內核研究-管理bean之間的關系二(自動依

系統 1934 0

?自動依賴檢查可以保證所有java bean中的屬性(set方法)都在Spring中正確的配置。如果在一個java bean中定義了一個name屬性,并且也setName方法。那么在開啟自動依賴檢查功能后,就必須在Spring中定義這個屬性,否則Spring將拋出異常。

請看下面的例子:
Dao.java
包含一個setName方法。
    package research.spring.beanfactory.ch3;
public class Dao {
private String name;
public void setName(String name) {
this.name = name;
}
}
  
?
? context.xml:
?
      <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="dao" class="research.spring.beanfactory.ch3.Dao">  </bean>
<bean id="database" class="research.spring.beanfactory.ch3.Database">
</bean>
</beans>

    
?
?我們在context.xml沒有定義Dao的name屬性。上面的配置,Spring可以正常的實例化Dao對象。
下面我們修改context.xml:
我們通過dependency-check=all,在Dao上增加了自動依賴檢查的功能。
?
?
        <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="dao" class="research.spring.beanfactory.ch3.Dao" dependency-check="all" >    </bean>
<bean id="database" class="research.spring.beanfactory.ch3.Database">
</bean>
</beans>
      
?當配置依賴檢查時,Spring實例化Dao時會拋出一個異常:
Spring定義了4種依賴檢查的策略:
?
  • none(默認)
??? 不進行依賴檢查。
  • simple
??? 只對簡單屬性和集合中的簡單屬性進行檢查。不對依賴的對象檢查。
  • objects
??? 只對為對象類型的屬性進行檢查。
  • all
??? 對所有類型進行檢查。
?
??? 如果把上面例子里的context.xml改成這樣:
          <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="dao" class="research.spring.beanfactory.ch3.Dao" dependency-check="objects" >    </bean>
<bean id="database" class="research.spring.beanfactory.ch3.Database">
</bean>
</beans>
        
?
Spring將不會拋出異常,因為objects只對依賴的對象進行檢查。
?
dependency-check在Spring中又以下的限制:
?
  1. ?不能對構造函數中的參數進行檢查。
  2. ?即使屬性中有默認值,只要包含了set方法,那么dependency-check仍然需要檢查Spring中是否配置了這個屬性。
        package research.spring.beanfactory.ch3;
public class Dao {
private Database database;
private String name="chenjie";
//dependency-check仍然會檢查這個屬性是否配置注入

public void setName(String name) {
this.name = name;
}
public void setDatabase(Database database) {
this.database = database;
}
}
      

?

即使Dao設置里name得默認值,但是只要有setName方法,dependency-check仍然會判斷是否在配置文件中設置了setName對應的注入。

Spring內核研究-管理bean之間的關系二(自動依賴檢查)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩美一区二区三区 | 久久免费视频一区 | 久久精品爱国产免费久久 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧美精品久久一区二区三区 | 亚洲精品亚洲人成人网 | 欧美顶级xxxxbbbb| 伊人久久中文字幕 | 亚洲精品高清国产一线久久97 | 综合久久久| 久久精品亚洲热综合一本奇米 | 久青草免费视频手机在线观看 | 欧美日韩免费在线观看 | 免费视频日韩 | 久久大香伊蕉在人线国产昨爱 | 国内精品久久久久久久亚洲 | 久久综合九色综合网站 | 国产成人久久精品麻豆二区 | 性生活国产 | 色妞色综合久久夜夜 | 日韩激情中文字幕一区二区 | 国产亚洲高清在线精品99 | 99热精品国产三级在线观看 | 欧美精品九九99久久在观看 | 老司机亚洲精品影视www | 中文字幕一区日韩在线视频 | 久亚洲精品不子伦一区 | 五月婷婷在线视频观看 | 欧美日韩亚洲一区二区 | 四虎成人影院网址 | 欧美在线观看第一页 | 婷婷色婷婷 | 麻豆国产高清精品国在线 | 国产精品爱久久久久久久小 | 天天做天天爱夜夜想毛片 | 成人在线日韩 | 91在线精品亚洲一区二区 | 国产精品久久久久久久久免费hd | 亚洲视频一区二区三区四区 | 午夜性爽视频男人的天堂在线 | 亚洲综合激情九月婷婷 |