@ComponentScan注解主要是代替了Spring XML’s <context:component-scan>这个元素,目的是扫描指定路径或默认当前包路径下的程序包配置类。
在项目中出现
** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
的报错,所以我为@ComponentScan添加了路径:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan("com.test.component.controller")
@ServletComponentScan
public class ComponentTest {
public static void main(String[] args) {
SpringApplication.run(ComponentTest.class , args);
}
}
excludeFilters 和 includeFilters 的使用
使用 excludeFilters 来按照规则排除某些包的扫描。
@ComponentScan(value = "io.mieux",
excludeFilters = {@Filter(type = FilterType.ANNOTATION,
value = {Controller.class})})
public class BeanConfig {
}
配置之后,在 spring 扫描的时候,就会跳过 io.mieux 包下,所有被 @Controller 注解标注的类。