Spring系列(三):@ComponentScan注解用法介紹


? ? ? ? ?今天給大家分享Spring中@ComponentScan注解的用法,希望對(duì)大家能有所幫助!
1、@ComponentScan注解的作用
@ComponentScan注解一般和@Configuration注解一起使用,主要的作用就是定義包掃描的規(guī)則,然后根據(jù)定義的規(guī)則找出哪些需類需要自動(dòng)裝配到spring的bean容器中,然后交由spring進(jìn)行統(tǒng)一管理。說(shuō)明:針對(duì)標(biāo)注了@Controller、@Service、@Repository、@Component 的類都可以別spring掃描到。
2、@ComponentScan注解屬性介紹
2.1 value
指定要掃描的包路徑
2.2 excludeFilters(排除規(guī)則)
excludeFilters=Filter[] 指定包掃描的時(shí)候根據(jù)規(guī)則指定要排除的組件
2.3 includeFilters(包含規(guī)則)
includeFilters =Filter[] 指定包掃描的時(shí)候根據(jù)規(guī)則指定要包含的組件.注意:要設(shè)置useDefaultFilters = false(系統(tǒng)默認(rèn)為true,需要手動(dòng)設(shè)置) includeFilters包含過(guò)濾規(guī)則才會(huì)生效。
2.4 FilterType屬性
FilterType.ANNOTATION:按照注解過(guò)濾FilterType.ASSIGNABLE_TYPE:按照給定的類型,指定具體的類,子類也會(huì)被掃描到FilterType.ASPECTJ:使用ASPECTJ表達(dá)式FilterType.REGEX:正則FilterType.CUSTOM:自定義規(guī)則useDefaultFilters: 配置是否開(kāi)啟可以對(duì)加@Component,@Repository,@Service,@Controller注解的類進(jìn)行檢測(cè), 針對(duì)Java8 語(yǔ)法可以指定多個(gè)@ComponentScan,Java8以下可以用 @ComponentScans() 配置多個(gè)規(guī)則
3、示例
3.1 各種過(guò)濾過(guò)濾規(guī)則示例
3.2 自定義過(guò)濾規(guī)則 需要新建?TestTypeFilter.java
3.3 新建測(cè)試類 ?TestComponentScan.java
具體的運(yùn)行效果可以查看控制臺(tái)輸出結(jié)果,是否和預(yù)期的一樣,具體有不清楚的歡迎溝通交流。