亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于XML配置Spring的自動裝配過程解析

 更新時間:2019年10月19日 14:13:29   作者:請叫我小老弟  
這篇文章主要介紹了基于XML配置Spring的自動裝配過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、了解Spring自動裝配的方式

采用傳統(tǒng)的XML方式配置Bean組件的關鍵代碼如下所示

<bean id="userMapper" class="edu.cn.dao.UserMapperImpl">
  <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

<bean id="userService" class="edu.cn.dao.UserServiceImpl">
  <property name="userMapper" ref="userMapper"/>
</bean>

我們通過<property>標簽為Bean的屬性注入所需的值,當需要維護的Bean組件及需要注入的屬性更多時,勢必會增加配置的工作量。這時可以使用自動裝配。

二、為每個Bean組件指定自動裝配的方式

使用自動裝配修改配置代碼如下

<bean id="userMapper" class="edu.cn.dao.UserMapperImpl" autowire="byName"/>

<bean id="userService" class="edu.cn.dao.UserServiceImpl" autowire="byName"/>

通過設置<bean>元素的autowire屬性指定自動裝配,代替了通過<property>標簽顯示指定Bean的依賴關系。由BeanFactory檢查XML配置文件的內容,為Bean自動注入依賴關系。

Spring提供了多種自動裝配方式,autowire屬性常用的取值如下所示

  • no       不使用自動裝配。Bean依賴關系必須通過property元素定義
  • byType    根據屬性類型自動裝配。BeanFactory查找容器中的全部Bean,如果正好有一個與依賴屬性類型相同的Bean,就自動裝配這個屬性;如果有多個這樣的Bean,Spring無法決定注入哪個Bean,就拋出一個致命異常;如果沒有匹配的Bean,就什么都不會發(fā)生,屬性不會被設置
  • byName    根據屬性名自動裝配。BeanFactory查找容器中的全部Bean,找出id與屬性的setter方法入參匹配的Bean。找到即自動注入,否則什么都不做
  • constructor  與byType的方式類似,不同之處在于它應用于構造器參數。如果在容器中沒有找到與構造器參數類型一致的Bean,那么將會拋出異常

在Spring配置文件中通過<bean>元素的autowire屬性可以實現自動裝配。但是,如果要配置的Bean很多,每個Bean都配置autowire屬性也會很繁瑣,可不可以統(tǒng)一設置自動注入而不必分別配置每個Bean呢?

三、設置全局自動裝配

<beans>元素提供了default-autowire屬性??梢允褂蒙厦媪谐龅膶傩灾禐?lt;beeas>設置default-autowire屬性以影響全局。

<?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"
    default-autowire="byName">
  
</beans>

在<beans>節(jié)點上設置default-autowired時,依然可以為<bean>節(jié)點設置autowire屬性。這時該<bean>節(jié)點上的自動裝配設置將覆蓋全局設置,成為該Bean的自動裝配策略。

對于大型的應用,不鼓勵使用自動裝配。雖然使用自動裝配可以減少配置工作量,但也大大降低了依賴關系的清晰性和透明性。依賴關系的裝配僅依賴于源文件的屬性名或類型,導致Bean和Bean之間的耦合降低到代碼層次,不利于高層次解耦合。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java發(fā)送短信系列之限制日發(fā)送次數

    java發(fā)送短信系列之限制日發(fā)送次數

    這篇文章主要為大家詳細介紹了java發(fā)送短信系列之限制日發(fā)送次數,詳細介紹了限制每日向同一個用戶(根據手機號和ip判斷)發(fā)送短信次數的方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java圖形用戶界面設計(Swing)的介紹

    Java圖形用戶界面設計(Swing)的介紹

    看到多數人提到 Java 就以為是網絡開發(fā),其實不是這樣的,Java 也可以開發(fā)應用程序,而且可以開發(fā)出漂亮的圖形用戶界面的應用程序,因此,我寫下這篇文章,希望能帶你進入 Java 圖形用戶界面設計之門。
    2016-07-07
  • Hibernate初體驗及簡單錯誤排除代碼詳解

    Hibernate初體驗及簡單錯誤排除代碼詳解

    這篇文章主要介紹了Hibernate初體驗及簡單錯誤排除代碼詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • MyBatisPlus+Lombok實現分頁功能的方法詳解

    MyBatisPlus+Lombok實現分頁功能的方法詳解

    Lombok是一個Java類庫,提供了一組注解,簡化POJO實體類開發(fā)。本文將為大家介紹一下Lombok的使用以及如何利用MyBatisPlus+Lombok實現分頁功能,感興趣的可以動手嘗試一下
    2022-07-07
  • 深入理解SpringBoot中關于Mybatis使用方法

    深入理解SpringBoot中關于Mybatis使用方法

    這篇文章主要介紹了SpringBoot中關于Mybatis使用方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-03-03
  • Java包裝類的緩存機制原理實例詳解

    Java包裝類的緩存機制原理實例詳解

    這篇文章主要介紹了Java包裝類的緩存機制原理實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 自己動手用Springboot實現仿百度網盤的實踐

    自己動手用Springboot實現仿百度網盤的實踐

    本項目基于Springboot開發(fā)實現,前端采用BootStrap開發(fā)實現,模仿百度網盤實現相關功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java中的反射機制基本運用詳解

    Java中的反射機制基本運用詳解

    這篇文章主要介紹了Java 反射機制原理與用法,結合實例形式詳細分析了Java反射機制的相關概念、原理、基本使用方法及操作注意事項,需要的朋友可以參考下
    2021-08-08
  • Java 數組內置函數toArray詳解

    Java 數組內置函數toArray詳解

    這篇文章主要介紹了Java 數組內置函數toArray詳解,文本詳細的講解了toArray底層的代碼和文檔,需要的朋友可以參考下
    2021-06-06
  • Java?IO網絡模型實現解析

    Java?IO網絡模型實現解析

    這篇文章主要為大家介紹了Java?IO網絡模型實現解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論