我在一个模块中有ConfigA,在另一个模块中有ConfigB,它们看起来像以下代码片段。
@Configuration
@Import({ConfigB.class})
public class ConfigA {
@Bean
Foo foo1(){}
}
@AutoConfiguration
public class ConfigB {
@Bean
@ConditionalOnMissingBean(name = "foo1")
Foo foo2(){}
}
因为我要将ConfigB导入ConfigA,所以总是先创建ConfigB,因此将创建两个Foo Bean。我要将ConfigB导入ConfigA,因为我希望导入其他一些Bean。
那么,有没有办法保留@Import,但只从ConfigA示例化Foo bean,而不覆盖bean呢?
1条答案
按热度按时间vd2z7a6w1#
使用@ImportAutoConfiguration而不是@Import解决了这个问题。然后,首先示例化ConfigA,然后示例化ConfigB。