我有两个 Spring Boot
项目让我们称他们为Foo
和 Bar
. Bar
包含在 Foo
中作为依赖。现在我只想包含来自 Bar
的特定包在Component Scan
的 Foo
(比方说:com.example.bar.ctrl
)。我知道您可以通过 excludeFilters
排除包裹但这需要更多的努力,而且我需要维护 exclude filter-list
每次我在 Bar
中创建一个新包时.
记录该行为的最佳方式是什么?
最佳答案
我会这样做:
1) Foo 包中的所有 bean 都位于 com.example.foo
下,并且 @SpringBootApplication
主类也位于该包中,因此它会扫描所有 bean来自 com.example.foo
包。
2) 在 bar 包 com.example.bar.ctrl
中,我将创建带有 @ComponentScan
注释的 @Configuration
没有任何属性,所以它只会扫描 ctrl
包 + 子包。
3) 我会将点 2) 中的 @Import
配置类放入点 1) 中的主类中
@ComponentScan
的include
或exclude
属性不需要显式包。
关于java - Spring Boot 组件扫描仅包含特定包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38476807/