我的代码中有以下注释:
@ComponentScan(basePackageClasses={MyClass.class},
excludeFilters={@Filter(Component.class)}, //@Component
includeFilters={@Filter(type=ASSIGNABLE_TYPE, classes=MyClass.class)}
)
MyClass
使用@Component
进行注释,但仍希望在组件扫描期间包含它。但是,组件扫描过滤器似乎使用和逻辑而不是或。我如何实现我想做的事情?
答案 0 :(得分:1)
@Configuration
比@ComponentScan
更具确定性。
而不是解决@ComponentScan
注释。您应该尝试将MyClass.class
类中的@Configuration
明确列为@Bean
,例如:
@Configuration
public class MyClassConfiguraiton {
@Bean
public MyClass myClass() {
return new MyClass();
}
}
然后显式@Import
配置类而不是@ComponentScan
注释:
@Import(MyClassConfiguratrion.class)
或者通过组件扫描机制导入它(因为@Configuration
使用@Component
进行元注释。)