<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)然也可以自己進(jìn)行注冊:

    <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/> 配置項不但啟用了對類包進(jìn)行掃描以實施注釋驅(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中配置上述配置

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

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

      啟動正常,請求正常,也是事物失效,不能進(jìn)行回滾

      (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 閱讀(9279) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 又粗又大又黑又长的免费视频| 久久久久亚洲AV无码专区体验| 美女被cao免费看在线看网站| 国产99久久久国产精免费| 亚洲人成自拍网站在线观看| 亚洲色四在线视频观看| 国产偷国产偷亚洲高清日韩 | 中文字幕亚洲图片| 国产精品成人免费视频网站京东 | 女性自慰aⅴ片高清免费| 久久久久久成人毛片免费看| 日韩精品视频在线观看免费| 久久精品国产亚洲av品善| 国产成人精品日本亚洲专一区| 午夜亚洲www湿好大| 中文字幕精品亚洲无线码一区| www国产亚洲精品久久久日本| 欧洲乱码伦视频免费| 24小时日本韩国高清免费| 日本一区二区免费看| 国产麻豆一精品一AV一免费 | 亚洲一本大道无码av天堂| 一本久久综合亚洲鲁鲁五月天| 午夜视频免费观看| 成年人免费视频观看| 久久精品免费全国观看国产| 日本片免费观看一区二区| 最近2019中文字幕免费直播 | 久久精品亚洲一区二区| 亚洲乳大丰满中文字幕| 亚洲熟妇无码八AV在线播放| 亚洲一本大道无码av天堂| 自拍偷自拍亚洲精品第1页| 亚洲一区二区精品视频| 国产成人毛片亚洲精品| 4338×亚洲全国最大色成网站| 亚洲午夜AV无码专区在线播放| 精品亚洲成α人无码成α在线观看 | 日产国产精品亚洲系列| 亚洲精品无码成人片在线观看| 亚洲电影日韩精品 |