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

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

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

    The NoteBook of EricKong

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

     在xml配置了這個(gè)標(biāo)簽后,spring可以自動(dòng)去掃描base-pack下面或者子包下面的java文件,如果掃描到有@Component @Controller@Service等這些注解的類,則把這些類注冊(cè)為bean

    注意:如果配置了<context:component-scan>那么<context:annotation-config/>標(biāo)簽就可以不用再xml中配置了,因?yàn)榍罢甙撕笳摺A硗?lt;context:annotation-config/>還提供了兩個(gè)子標(biāo)簽

    1.        <context:include-filter>

    2.       <context:exclude-filter>

    在說(shuō)明這兩個(gè)子標(biāo)簽前,先說(shuō)一下<context:component-scan>有一個(gè)use-default-filters屬性,改屬性默認(rèn)為true,這就意味著會(huì)掃描指定包下的全部的標(biāo)有@Component的類,并注冊(cè)成bean.也就是@Component的子注解@Service,@Reposity。所以如果僅僅是在配置文件中這么寫

    <context:component-scan base-package="tv.huan.weisp.web"/>

     Use-default-filter此時(shí)為true那么會(huì)對(duì)base-package包或者子包下的所有的進(jìn)行java類進(jìn)行掃描,并把匹配的java類注冊(cè)成bean。

     

     可以發(fā)現(xiàn)這種掃描的粒度有點(diǎn)太大,如果你只想掃描指定包下面的Controller,該怎么辦?此時(shí)子標(biāo)簽<context:incluce-filter>就起到了勇武之地。如下所示

    <context:component-scan base-package="tv.huan.weisp.web .controller">  

    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>   

    </context:component-scan>  

    這樣就會(huì)只掃描base-package指定下的有@Controller下的java類,并注冊(cè)成bean

    但是因?yàn)閡se-dafault-filter在上面并沒(méi)有指定,默認(rèn)就為true,所以當(dāng)把上面的配置改成如下所示的時(shí)候,就會(huì)產(chǎn)生與你期望相悖的結(jié)果(注意base-package包值得變化)

    <context:component-scan base-package="tv.huan.weisp.web ">  

    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>   

    </context:component-scan>  

    此時(shí),spring不僅掃描了@Controller,還掃描了指定包所在的子包service包下注解@Service的java類

    此時(shí)指定的include-filter沒(méi)有起到作用,只要把use-default-filter設(shè)置成false就可以了。這樣就可以避免在base-packeage配置多個(gè)包名這種不是很優(yōu)雅的方法來(lái)解決這個(gè)問(wèn)題了。

    另外在我參與的項(xiàng)目中可以發(fā)現(xiàn)在base-package指定的包中有的子包是不含有注解了,所以不用掃描,此時(shí)可以指定<context:exclude-filter>來(lái)進(jìn)行過(guò)濾,說(shuō)明此包不需要被掃描。綜合以上說(shuō)明

    Use-dafault-filters=”false”的情況下:<context:exclude-filter>指定的不掃描,<context:include-filter>指定的掃描

    posted on 2014-08-13 11:22 Eric_jiang 閱讀(198) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 免费国产小视频在线观看| 久久精品国产精品亚洲毛片| 91老湿机福利免费体验| 在线看亚洲十八禁网站| 亚洲系列中文字幕| 老汉色老汉首页a亚洲| 免费**毛片在线播放直播| 国产在线观看免费观看不卡| 免费观看成人久久网免费观看| 美女被免费视频网站a| 四虎影视永久免费观看网址| 美女视频黄是免费的网址| 人人揉揉香蕉大免费不卡| 国产精品永久免费视频| 国产成人+综合亚洲+天堂| 亚洲中文字幕无码av| 亚洲乱码在线播放| 亚洲理论在线观看| 色播亚洲视频在线观看| 亚洲AV无码久久精品色欲| 伊人亚洲综合青草青草久热| 国产精品免费电影| 在线观看免费国产视频| 午夜成人免费视频| 无码国产精品一区二区免费I6| 88av免费观看入口在线| 免费人成视频在线观看网站| 免费观看男人吊女人视频| 四虎影视无码永久免费| 91成人免费观看在线观看| 国产在线观看无码免费视频| 两个人的视频www免费| 国产精品成人啪精品视频免费| 日本高清免费中文在线看| 国产91成人精品亚洲精品| 边摸边吃奶边做爽免费视频99| 水蜜桃视频在线观看免费| a免费毛片在线播放| 久久国产精品免费一区| 三级黄色片免费看| 免费福利在线视频|