Spring注解系列二:組件注冊(cè)-@ComponentScan

轉(zhuǎn):http://www.itdecent.cn/p/170cf6c36dce

1、在配置類中配置包掃描

<!-- 包掃描、只要標(biāo)注了@Controller、@Service、@Repository,@Component -->
<context:component-scan base-package="com.atguigu"></context:component-scan>
@Configuration  
@ComponentScan(value="com.atguigu")
public class MainConfig {
}

2、創(chuàng)建組件

@Controller
public class BookController {
}

@Service
public class BookService {
}

@Repository
public class BookDao {
}

3、創(chuàng)建測(cè)試方法

@SuppressWarnings("resource")
@Test
public void test01(){
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
    String[] definitionNames = applicationContext.getBeanDefinitionNames();
    for (String name : definitionNames) {
        System.out.println(name);
    }
}
圖片.png

4、包掃描時(shí)排除某些組件excludeFilters

@Configuration  
@ComponentScan(value="com.atguigu",excludeFilters = {
        @Filter(type=FilterType.ANNOTATION,classes={Controller.class})
})
public class MainConfig {
}
圖片.png

5、包掃描時(shí)只包含某些組件includeFilters

//以前要只包含某些組件必須使用use-default-filters="false"禁用默認(rèn)規(guī)則。默認(rèn)是掃描所有的
<context:component-scan base-package="com.atguigu" use-default-filters="false"></context:component-scan> 
@Configuration  
@ComponentScan(value="com.atguigu",includeFilters = {
        @Filter(type=FilterType.ANNOTATION,classes={Controller.class})
},useDefaultFilters = false)
public class MainConfig {
}
圖片.png

6、@ComponentScans注解

@Configuration 
@ComponentScans(value = @ComponentScan(value="com.atguigu",includeFilters = {
        @Filter(type=FilterType.ANNOTATION,classes={Controller.class})
},useDefaultFilters = false))
public class MainConfig {
}
圖片.png

7、@ComponentScan可以重復(fù)標(biāo)注

@ComponentScan(value="com.atguigu",excludeFilters = {
        @Filter(type=FilterType.ANNOTATION,classes={Service.class})
},useDefaultFilters = false)
@ComponentScan(value="com.atguigu",includeFilters = {
        @Filter(type=FilterType.ANNOTATION,classes={Controller.class})
},useDefaultFilters = false)
public class MainConfig {
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容