ComponentScan

你可以使用 @ComponentScan 来配置更复杂的包扫描。还有 @ComponentScans 作为容器注释,聚合了几个 @ComponentScan 注释。

基本代码示例

@ComponentScan
public class DemoAutoConfiguration {
}
@ComponentScans({@ComponentScan("com.example1"), @ComponentScan("com.example2")})
public class DemoAutoConfiguration {
}

说明没有配置的 @ComponentScan 就像 @SpringBootApplication 一样,并扫描用这个注释注释的类下的所有包。

在这个例子中,我将陈述 @ComponentScan 的一些有用属性:

  1. basePackages - 可用于声明要扫描的特定包。
  2. useDefaultFilters - 通过将此属性设置为 false(默认值为 true),你可以确保 spring 不会自动扫描 @Component@Repository@Service@Controller
  3. includeFilters - 可用于包括特定的 spring 注释/正则表达式模式以包含在包扫描中。
  4. excludeFilters - 可用于排除特定的 spring 注释/正则表达式模式以包含在包扫描中。

还有更多属性,但这些属性是最常用于自定义程序包扫描的属性。