最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

<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>標(biāo)簽為Bean的屬性注入所需的值,當(dāng)需要維護(hù)的Bean組件及需要注入的屬性更多時,勢必會增加配置的工作量。這時可以使用自動裝配。

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

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

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

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

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

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

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

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

三、設(shè)置全局自動裝配

<beans>元素提供了default-autowire屬性??梢允褂蒙厦媪谐龅膶傩灾禐?lt;beeas>設(shè)置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é)點上設(shè)置default-autowired時,依然可以為<bean>節(jié)點設(shè)置autowire屬性。這時該<bean>節(jié)點上的自動裝配設(shè)置將覆蓋全局設(shè)置,成為該Bean的自動裝配策略。

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring boot 配置動態(tài)刷新詳解

    spring boot 配置動態(tài)刷新詳解

    這篇文章主要介紹了spring boot 配置動態(tài)刷新實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • springboot構(gòu)造樹形結(jié)構(gòu)數(shù)據(jù)并查詢的方法

    springboot構(gòu)造樹形結(jié)構(gòu)數(shù)據(jù)并查詢的方法

    本文主要介紹了springboot怎樣構(gòu)造樹形結(jié)構(gòu)數(shù)據(jù)并查詢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Maven配置項目依賴使用本地倉庫的方法匯總(小結(jié))

    Maven配置項目依賴使用本地倉庫的方法匯總(小結(jié))

    這篇文章主要介紹了Maven配置項目依賴使用本地倉庫的方法匯總(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot 如何添加容器啟動的初始化邏輯的操作方法

    SpringBoot 如何添加容器啟動的初始化邏輯的操作方法

    這篇文章主要介紹了SpringBoot 如何添加容器啟動的初始化邏輯,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • IntelliJ IDEA設(shè)置JVM運行參數(shù)的操作方法

    IntelliJ IDEA設(shè)置JVM運行參數(shù)的操作方法

    這篇文章主要介紹了IntelliJ IDEA設(shè)置JVM運行參數(shù)的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-03-03
  • Java之定時器Timer和定時任務(wù)TimerTask應(yīng)用以及原理解讀

    Java之定時器Timer和定時任務(wù)TimerTask應(yīng)用以及原理解讀

    文章介紹了Java JDK自帶的定時器Timer和定時任務(wù)TimerTask的使用和原理,Timer和TimerTask成對出現(xiàn),Timer是定時器,TimerTask是定時任務(wù),TimerTask實現(xiàn)Runnable接口的run方法,Timer的屬性TimerThreadthread繼承Thread
    2024-12-12
  • @AutoConfigurationPackage與@ComponentScan注解區(qū)別

    @AutoConfigurationPackage與@ComponentScan注解區(qū)別

    這篇文章主要介紹了@AutoConfigurationPackage與@ComponentScan注解區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Spring Boot打包部署和環(huán)境配置詳解

    Spring Boot打包部署和環(huán)境配置詳解

    這篇文章主要介紹了Spring Boot打包部署和環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Jenkins Maven pom jar打包未拉取最新包解決辦法

    Jenkins Maven pom jar打包未拉取最新包解決辦法

    包版本號未變更新后,jenkins打包不會拉取最新包,本文主要介紹了Jenkins Maven pom jar打包未拉取最新包解決辦法,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Mybatis-Plus的應(yīng)用場景描述及注入SQL原理分析

    Mybatis-Plus的應(yīng)用場景描述及注入SQL原理分析

    MyBatis-Plus是一個 MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,本文重點給大家介紹Mybatis-Plus的應(yīng)用場景及注入SQL原理分析,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2021-05-05

最新評論

锡林浩特市| 门源| 呼玛县| 新野县| 云南省| 社会| 阳新县| 安宁市| 漠河县| 文成县| 常熟市| 荣成市| 烟台市| 永康市| 七台河市| 侯马市| 西宁市| 丰台区| 扎赉特旗| 安多县| 彭州市| 金堂县| 安福县| 尖扎县| 拜泉县| 扎鲁特旗| 林周县| 北宁市| 新安县| 洛川县| 英德市| 同德县| 汉寿县| 沙坪坝区| 腾冲县| 永吉县| 海宁市| 内黄县| 禹州市| 班戈县| 达尔|