<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cuiyi's blog(崔毅 crazycy)

    記錄點滴 鑒往事之得失 以資于發(fā)展
    數(shù)據(jù)加載中……

    SpringMVC+MyBatis - 7 Spring自動掃描注解類的沖突問題

    Spring MVC項目中通常會有二個配置文件,sprng-servlet.xml和applicationContext.xml二個配置文件,通常會出現(xiàn)以下幾個配置

    1. <context:annotation-config />

    它的作用是隱式地向 Spring 容器注冊  
    - AutowiredAnnotationBeanPostProcessor、
    - CommonAnnotationBeanPostProcessor、
    - PersistenceAnnotationBeanPostProcessor、
    - RequiredAnnotationBeanPostProcessor 這4個BeanPostProcessor。

    其作用是如果你想在程序中使用注解,就必須先注冊該注解對應(yīng)的類,如下圖所示:

    依賴的類注解
    CommonAnnotationBeanPostProcessor@Resource 、@PostConstruct、@PreDestroy
    PersistenceAnnotationBeanPostProcessor的Bean@PersistenceContext
    AutowiredAnnotationBeanPostProcessor Bean@Autowired
    RequiredAnnotationBeanPostProcessor@Required

      當(dāng)然也可以自己進行注冊:

    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/>  
    <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>


    2. <context:component-scan base-package="com.*" >

    <context:component-scan/> 配置項不但啟用了對類包進行掃描以實施注釋驅(qū)動 Bean 定義的功能,同時還啟用了注釋驅(qū)動自動注入的功能(即還隱式地在內(nèi)部注冊了 AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor),因此當(dāng)使用 <context:component-scan/> 后,就可以將 <context:annotation-config/> 移除了


    在這里有一個比較有意思的問題,就是掃描是否需要在二個配置文件都配置一遍,我做了這么幾種測試:

                

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

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

      啟動正常,但是任何請求都不會被攔截,簡而言之就是@Controller失效

      (2)只在spring-servlet.xml中配置上述配置

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

      (3)在applicationContext.xml和spring-servlet.xml中都配置上述信息

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

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

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

      在spring-servlet.xml中配置如下

        <context:component-scan base-package="com.sohu.login.web" />

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

      結(jié)論:在spring-servlet.xml中只需要掃描所有帶@Controller注解的類,在applicationContext中可以掃描所有其他帶有注解的類(也可以過濾掉帶@Controller注解的類)。


    3. <mvc:annotation-driven />

      它會自動注冊DefaultAnnotationHandlerMapping 與AnnotationMethodHandlerAdapter

    出處:http://www.cnblogs.com/fangqi/archive/2012/12/11/2812745.html

    posted on 2014-07-12 23:45 crazycy 閱讀(9277) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久高清免费视频| 久久亚洲AV成人出白浆无码国产| 久久精品国产亚洲AV久| 国产va在线观看免费| 亚洲一本综合久久| 亚洲人成综合网站7777香蕉| 黄色一级视频免费| 1000部啪啪毛片免费看| 亚洲成AⅤ人影院在线观看| 亚洲色图古典武侠| 国产电影午夜成年免费视频| 亚洲国产高清在线精品一区| 岛国岛国免费V片在线观看| 激情综合色五月丁香六月亚洲| 在线看片免费人成视频久网下载| 日韩一区二区在线免费观看| 国产亚洲精品成人久久网站| 免费不卡中文字幕在线| 一区二区在线视频免费观看| 免费看片免费播放| 免费无码国产V片在线观看| 成人毛片免费观看| 亚洲一区二区三区深夜天堂| 成人看的午夜免费毛片| 国产亚洲视频在线| 亚洲成A人片777777| 免费H网站在线观看的| 亚洲国产高清国产拍精品| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲国产成人无码AV在线影院| 国产免费人成视频在线观看| 亚洲国产成人久久三区| 四虎影库久免费视频| 国产成人AV免费观看| 亚洲无线码一区二区三区| 一级中文字幕免费乱码专区| 亚洲精品乱码久久久久66| 亚洲免费视频播放| 亚洲av乱码一区二区三区香蕉 | 亚洲国产香蕉人人爽成AV片久久| a级毛片毛片免费观看永久|