其他分享
首页 > 其他分享> > Spring - @ComponentScan包扫描机制

Spring - @ComponentScan包扫描机制

作者:互联网

@

目录

前言

@ComponentScan注解默认装配标识了@Controller,@Service,@Repository,@Component注解的Bean到IOC容器中,这里我们看一下它的扫描机制。


默认扫描机制

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


@ComponentScan的使用


@ComponentScan常用参数

参数 作用
basePackages与value 用于指定包的路径,进行扫描
basePackageClasses 用于指定某个类的包的路径进行扫描
nameGenerator bean的名称的生成器
useDefaultFilters 是否开启对@Component,@Repository,@Service,@Controller的类进行检测
includeFilters 包含的过滤条件 FilterType.ANNOTATION:按照注解过滤 FilterType.ASSIGNABLE_TYPE:按照给定的类型 FilterType.ASPECTJ:使用ASPECTJ表达式 FilterType.REGEX:正则 FilterType.CUSTOM:自定义规则
excludeFilters 排除的过滤条件,用法和includeFilters一样

@ComponentScan指定扫描

在这里插入图片描述

@SpringBootApplication
@ComponentScan("com.coisini")
public class SpringLearnApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringLearnApplication.class, args);
    }
}

在这里插入图片描述


excludeFilters 排除扫描

@RestController
@RequestMapping("/testOne")
public class TestOneController {

    @Autowired
    private TestInter testInter;

    @GetMapping(value = "/test")
    public String test(){
        return testInter.sayHello();
    }

}
@SpringBootApplication
@ComponentScan(value = "com.coisini",
                excludeFilters = {@ComponentScan.Filter(
                        type = FilterType.ASSIGNABLE_TYPE,
                        classes = TestOneController.class)})
public class SpringLearnApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringLearnApplication.class, args);
    }

}

在这里插入图片描述

在这里插入图片描述

- End -
梦想是咸鱼
关注一下吧

标签:扫描,Spring,FilterType,public,TestController,ComponentScan,class
来源: https://www.cnblogs.com/maggieq8324/p/15118214.html