<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)航:
     
    主站蜘蛛池模板: 国内精品乱码卡1卡2卡3免费| 免费观看在线禁片| 成年在线观看网站免费| 久久精品a亚洲国产v高清不卡| 99精品免费视频| 亚洲日本va中文字幕久久| 久久久久久噜噜精品免费直播| 中文字幕专区在线亚洲| 国产精品极品美女自在线观看免费 | 免费在线人人电影网| 免费大学生国产在线观看p| 精品成人一区二区三区免费视频| 国产一级做a爱免费视频| 日本亚洲高清乱码中文在线观看 | 亚洲精品一级无码中文字幕| 日本一区二区三区在线视频观看免费 | 亚洲美国产亚洲AV| 国产男女猛烈无遮档免费视频网站| 午夜亚洲WWW湿好爽| 亚洲国产中文字幕在线观看| 成人性做爰aaa片免费看| 亚洲黄色免费网站| 最近最好的中文字幕2019免费 | 精品国产福利尤物免费| 亚洲资源在线视频| 成人免费看片又大又黄| 黄色免费在线网址| 亚洲爆乳精品无码一区二区三区| 在免费jizzjizz在线播| 亚洲国产AV一区二区三区四区| 亚洲成A人片在线观看无码3D| 黄色片免费在线观看| 亚洲av日韩av综合| 亚洲精品tv久久久久| 222www免费视频| 春暖花开亚洲性无区一区二区| 国产亚洲一区二区在线观看 | 国产乱辈通伦影片在线播放亚洲| 十九岁在线观看免费完整版电影| 亚洲色中文字幕在线播放| 亚洲精品无码鲁网中文电影|