ComponentScan
你可以使用 @ComponentScan
来配置更复杂的包扫描。还有 @ComponentScans
作为容器注释,聚合了几个 @ComponentScan
注释。
基本代码示例
@ComponentScan
public class DemoAutoConfiguration {
}
@ComponentScans({@ComponentScan("com.example1"), @ComponentScan("com.example2")})
public class DemoAutoConfiguration {
}
说明没有配置的 @ComponentScan
就像 @SpringBootApplication
一样,并扫描用这个注释注释的类下的所有包。
在这个例子中,我将陈述 @ComponentScan
的一些有用属性:
- basePackages - 可用于声明要扫描的特定包。
- useDefaultFilters - 通过将此属性设置为 false(默认值为 true),你可以确保 spring 不会自动扫描
@Component
,@Repository
,@Service
或@Controller
。 - includeFilters - 可用于包括特定的 spring 注释/正则表达式模式以包含在包扫描中。
- excludeFilters - 可用于排除特定的 spring 注释/正则表达式模式以包含在包扫描中。
还有更多属性,但这些属性是最常用于自定义程序包扫描的属性。