<context:component-scan>使用說明

在xml文件配置了<context:component-scan>標(biāo)簽后,spring容器可以自動去掃描base-pack所指定的包或其子包下面的java類文件贷笛,如果掃描到有@Component、@Controller、@Service 、@Repository等注解修飾的Java類映砖,則將這些類注冊為spring容器中的bean。

注意點:

  • 如果配置了<context:component-scan>標(biāo)簽元素罩旋,那么<context:annotation-config/>標(biāo)簽就可以不用在xml中配置了啊央,因為前者包含了后者。

  • <context:component-scan>有一個use-default-filters屬性涨醋,該屬性值默認為true,這就意味著會掃描指定包下的
    全部的有@Component瓜饥、@Controller、@Service 浴骂、@Repository等注解修飾的Java類乓土,則將這些類注冊為
    spring容器中的bean。
    例如在配置文件中添加如下代碼:

    <context:component-scan base-package="com.bank.account.web"/>
    

    因為此時屬性Use-default-filter的值為true溯警,那么會對base-package包或者子包下所有的java類進行掃描,并
    把匹配的java類注冊成spring容器中的bean趣苏。

  • <context:component-scan>還提供了兩個子標(biāo)簽:

    • <context:include-filter>

      • 如果你只想掃描指定包下面的Controller,可以借助于子標(biāo)簽<context:incluce-filter>梯轻,如下代碼所示:

          <context:component-scan base-package="com.bank.account.web.controller">  
                <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
          </context:component-scan>  
        

        以上xml的配置就會告之spring容器只掃描base-package(此處:com.bank.account.web.controller)指定包下的有@Controller修飾的java類食磕,并注冊成spring窗口中的bean。

      • 但是因為use-dafault-filter在上面并沒有指定喳挑,默認就為true彬伦,所以當(dāng)把上面的配置改成如下所示的時候,就會與之相反的結(jié)果(注意base-package包值得變化)

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

        此時伊诵,spring不僅掃描了@Controller修飾的javaod 单绑,還掃描了指定包或其子包下有@Service 、
        @Repository注解修飾的java類此時指定的include-filter沒有起到作用曹宴,只要把use-default-filter設(shè)置成
        false就可以了搂橙。這樣就可以避免在base-packeage配置多個包名。

    • <context:exclude-filter>
      項目中,在base-package指定的包中有的子包是不含有注解的笛坦,所以這些包可以不進行掃描区转,此時可以指定
      <context:exclude-filter>來進行過濾,說明此包不需要被掃描版扩。
      Use-dafault-filters=”false”的情況下:<context:exclude-filter>指定的包不進行相應(yīng)注解的掃描蜗帜,
      <context:include-filter>指定包或其子包進行相應(yīng)注解的掃描。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末资厉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蔬顾,更是在濱河造成了極大的恐慌宴偿,老刑警劉巖湘捎,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窄刘,居然都是意外死亡窥妇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門娩践,熙熙樓的掌柜王于貴愁眉苦臉地迎上來活翩,“玉大人,你說我怎么就攤上這事翻伺〔男梗” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵吨岭,是天一觀的道長拉宗。 經(jīng)常有香客問我,道長辣辫,這世上最難降的妖魔是什么旦事? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮急灭,結(jié)果婚禮上姐浮,老公的妹妹穿的比我還像新娘。我一直安慰自己葬馋,他們只是感情好卖鲤,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著点楼,像睡著了一般扫尖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掠廓,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天换怖,我揣著相機與錄音,去河邊找鬼蟀瞧。 笑死沉颂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悦污。 我是一名探鬼主播铸屉,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼切端!你這毒婦竟也來了彻坛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昌屉,沒想到半個月后钙蒙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡间驮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年躬厌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竞帽。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡扛施,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屹篓,到底是詐尸還是另有隱情疙渣,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布抱虐,位于F島的核電站昌阿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏恳邀。R本人自食惡果不足惜懦冰,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谣沸。 院中可真熱鬧刷钢,春花似錦、人聲如沸乳附。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赋除。三九已至阱缓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間举农,已是汗流浹背荆针。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颁糟,地道東北人航背。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像棱貌,于是被迫代替她去往敵國和親玖媚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容