我在将外部库与Spring集成时遇到问题。它包含一个用@Configuration
注释的类,它有一个用@Bean
注释的方法。我不希望它被实例化(它不需要并引入依赖于 Spring Boot ,我不使用它。
不幸的是,这个@Configuration
- 带注释的类在库的其他地方使用(类类型需要,而不是接口类型,所以我需要实例化这个类)。
我从自动扫描中排除了它的包,我不是直接导入它。只需手动构建它并在自己的配置中注册为bean。
所以,为了简化故事 - 我需要注册一个bean,但是要从注释scnanning中排除它(不处理它的@Bean
- 带注释的方法)。这样做的任何方式?
答案 0 :(得分:0)
如果您的意思是Maven中有gradle库,则可以从初始化中排除spring bean。我发现exclude @Component from @ComponentScan
@Configuration @EnableSpringConfigured
@ComponentScan(basePackages = {"com.example"}, excludeFilters={
@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)})
public class MySpringConfiguration {}
并且如果您不想包括传递性依赖项,因此不想让您的依赖项添加它使用的其他依赖项,则必须将它们从依赖项中排除(在maven中,gradle)。