美文网首页
spring2_ComponentScan

spring2_ComponentScan

作者: 蜗牛写java | 来源:发表于2018-09-25 23:37 被阅读0次
ComponentScan

扫描包注解
excludeFilters:排除(Filter数组)
includeFilters:包括(Filter数组),默认过滤要设置为false;即useDefaultFilters=false
过滤的几种类型
FilterType.ANNOTATION : 按照注解
FilterType.ASSIGNABLE_TYPE : 按照指定的类型
FilterType.ASPECTJ : 使用ASPECTJ表达式 不常用
FilterType.REGEX : 使用正则表达式
FilterType.CUSTOM : 自定义规则

配置类
/**
 * 配置类
 * @author dwb
 *
 */
@Configuration  //告诉Spring 这是一个配置类
//@ComponentScan(value="com.dwb",includeFilters= {
//      @Filter(type=FilterType.ANNOTATION, classes= {Controller.class, Service.class})
//},useDefaultFilters=false)
@ComponentScans(value= {
        @ComponentScan(value="com.dwb",includeFilters= {
//              @Filter(type=FilterType.ANNOTATION, classes= {Controller.class, Repository.class}),
//              @Filter(type=FilterType.ASSIGNABLE_TYPE, classes= {BookService.class}),
                @Filter(type=FilterType.CUSTOM, classes= {MyTypeFilter.class})
        },useDefaultFilters=false)
})
//@ComponentScan value:指定要扫描的包
//excludeFilters = Filter[], 指定扫描的时候按照什么规则,排除什么规则
//excludeFilters= {@Filter(type=FilterType.ANNOTATION, classes= {Controller.class, Service.class}
//includeFilters = Filter[], 指定扫描的时候只需要包含哪些组件;使用需要useDefaultFilters=false,才能生效
//FilterType.ANNOTATION : 按照注解
//FilterType.ASSIGNABLE_TYPE : 按照指定的类型
//FilterType.ASPECTJ : 使用ASPECTJ表达式 不常用
//FilterType.REGEX : 使用正则表达式
//FilterType.CUSTOM : 自定义规则
public class MainConfig {
    //给容器注册一个Bean;类型为返回值的类型,id默认是用方法名
    @Bean("person")
    public Person person01() {
        return new Person("lisi", 20);
    }
}
测试类
@Test
    public void test01() {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for (String name : beanDefinitionNames) {
            System.out.println(name);
        }
    }

相关文章

网友评论

      本文标题:spring2_ComponentScan

      本文链接:https://www.haomeiwen.com/subject/jzproftx.html