我有两个Spring Boot
项目,可以调用它们Foo
和Bar
。 Bar
中包含Foo
作为依赖项。现在,我想在Bar
的{{1}}中仅包含来自Component Scan
的特定包(例如:Foo
)。我知道您可以通过com.example.bar.ctrl
排除软件包,但这样会更加努力,每次我在excludeFilters
创建新软件包时都需要维护exclude filter-list
。
存档该行为的最佳方式是什么?
答案 0 :(得分:4)
我会这样做:
1)Foo包将使com.example.foo
下的所有bean以及@SpringBootApplication
主类都在该包中,以便它将扫描来自com.example.foo
包的所有bean。
2)在条形码包com.example.bar.ctrl
中,我会使用@Configuration
注释创建@ComponentScan
而没有任何属性,因此它只会扫描ctrl
个包+子包。
3)我将@Import
从第2点开始的配置类转换为从第1点开始的主类
@ComponentScan
include
或exclude
属性无需明确的包裹。
答案 1 :(得分:0)
如果您使用的是@ComponentScan
注释,则它具有basePackages
属性,可以扫描String[]
个包。