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

Spring和SpringMVC掃描注解類沖突的解決方案

 更新時間:2021年10月09日 11:10:50   作者:Java小寶  
這篇文章主要介紹了Spring和SpringMVC掃描注解類沖突的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Spring和SpringMVC掃描注解類沖突

最正確的配置方式

在主容器中applicationContext.xml中,將Controller的注解排除掉

 <context:component-scan base-package="com"> 
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> 
  </context:component-scan> 

而在springmvc.xml中,將Service注解給去掉

  <context:component-scan base-package="com"> 
  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> 
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> 
  </context:component-scan> 

因為spring的context是父子容器,所以會產(chǎn)生沖突,由ServletContextListener產(chǎn)生的是父容器,springMVC產(chǎn)生的是子容器,子容器Controller進行掃描裝配時裝配了@Service注解的實例,而該實例理應由父容器進行初始化以保證事務的增強處理,所以此時得到的將是原樣的Service(沒有經(jīng)過事務加強處理,故而沒有事務處理能力。

還有一種方式是將service層改用xml配置,其實這樣做也是變相的讓springmvc無法掃描service,而只能依賴父窗口也就是ServletContextListener來進行初始化,這樣同樣被賦予了事務性。

也可以用直接掃描的方式

直接掃描比較省事,但是事務回得不到處理,所以在具體的層面上還需要加入注解去聲明事務,比如在dao層和service層加入@Transactional

幾種不同配置的測試

(1)只在applicationContext.xml中配置如下

<context:component-scan base-package="com" />

啟動正常,但是任何請求都不會被攔截,簡而言之就是@Controller失效,出現(xiàn)404錯誤

(2)只在springmvc.xml中配置

<context:component-scan base-package="com" />

啟動正常,請求也正常,但是事物失效,也就是不能進行回滾

(3)在applicationContext.xml和springmvc.xml中都配置

<context:component-scan base-package="com" />

啟動正常,請求正常,也是事物失效,不能進行回滾

(4)在applicationContext.xml中配置如下

<context:component-scan base-package="com.service" />

在springmvc.xml中配置如下

<context:component-scan base-package="com.action" />

或者按最正確的配置applicationContext.xml,將Controller的注解排除掉 ,springmvc.xml,將Service注解給去掉

此時啟動正常,請求正常,事物也正常了。

Spring和SpringMVC注解掃描注意事項

現(xiàn)象

Springmvc和Spring設置自動掃描文件夾自動注入bean的時候有時候出現(xiàn)沖突

方法

1:springmvc設置只掃描controller

這里寫圖片描述

2:spring設置不掃描controller

這里寫圖片描述

代碼:

springmvc 的掃描設置只掃描controller  spring的掃描設置為不掃描controller的 防止重復注入bean管理   (出現(xiàn)未錯誤)
<!-- 設置使用Spring注解的類所在的jar包  設置不掃描下面規(guī)則的 -->
    <context:component-scan base-package="com.oig">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    </context:component-scan>
    <!-- 設置使用SpringMvc注解的類所在的jar包 設置只掃描自定義規(guī)則的-->
    <context:component-scan base-package="com.oig" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    </context:component-scan>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java?for循環(huán)標簽跳轉到指定位置的示例詳解

    Java?for循環(huán)標簽跳轉到指定位置的示例詳解

    這篇文章主要介紹了Java?for循環(huán)標簽跳轉到指定位置,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 詳解Java深拷貝,淺拷貝和Cloneable接口

    詳解Java深拷貝,淺拷貝和Cloneable接口

    這篇文章主要為大家詳細介紹了Java中Cloneable接口以及深拷貝與淺拷貝的相關知識,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-08-08
  • 教你如何寫springboot接口?

    教你如何寫springboot接口?

    這篇文章主要介紹了教你如何寫springboot接口,Spring?Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置,需要的朋友可以參考y一下
    2022-01-01
  • Java設計模式之共享模式/享元模式(Flyweight模式)介紹

    Java設計模式之共享模式/享元模式(Flyweight模式)介紹

    這篇文章主要介紹了Java設計模式之共享模式/享元模式(Flyweight模式)介紹,本文講解了為什么使用共享模式/享元模式、如何使用共享模式/享元模式、Flyweight模式在XML等數(shù)據(jù)源中應用等內容,需要的朋友可以參考下
    2015-03-03
  • 怎么運行用記事本寫的java程序

    怎么運行用記事本寫的java程序

    以下小編就為大家介紹一下,怎么運行用記事本寫的java程序。需要的朋友可以過來參考下
    2013-08-08
  • Java回調機制解讀

    Java回調機制解讀

    本文主要介紹了Java回調機制的相關知識,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • SpringMVC入門實例

    SpringMVC入門實例

    這篇文章主要介紹了SpringMVC入門實例,在springmvc入門教程里算是比較不錯的,結構也比較完整,需要的朋友可以參考。
    2017-11-11
  • Spring Boot CLI使用教程

    Spring Boot CLI使用教程

    本篇文章主要介紹了Spring Boot CLI使用教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java自定義映射resultMap定義及用法

    Java自定義映射resultMap定義及用法

    MyBatis的每一個查詢映射的返回類型都是ResultMap,當我們提供返回類型屬性是resultType時,MyBatis會自動給我們把對應值賦給resultType所指定對象的屬性,當我們提供返回類型是resultMap時,將數(shù)據(jù)庫中列數(shù)據(jù)復制到對象的相應屬性上,可以用于復制查詢,兩者不能同時用
    2022-11-11
  • 基于servlet的執(zhí)行原理與生命周期(全面解析)

    基于servlet的執(zhí)行原理與生命周期(全面解析)

    下面小編就為大家分享一篇servlet的執(zhí)行原理與生命周期全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評論

都昌县| 深水埗区| 孙吴县| 临江市| 峨边| 香河县| 侯马市| 波密县| 张北县| 承德市| 乐亭县| 景东| 仙居县| 安陆市| 名山县| 桑日县| 张北县| 长寿区| 杂多县| 湘潭市| 洛宁县| 上杭县| 墨江| 宜黄县| 西乌珠穆沁旗| 庐江县| 湄潭县| 岱山县| 观塘区| 霍林郭勒市| 大宁县| 疏附县| 沙湾县| 施秉县| 赣州市| 秦皇岛市| 双柏县| 合阳县| 茌平县| 酒泉市| 奇台县|