假设我有2个Spring @Configuration类:
@Configuration
public class Config1 {
@Bean
public SomeInterface getSomeInterface() {
return SomeImpl1;
}
}
@Configuration
public class Config2 {
@Bean
public SomeInterface getSomeInterface() {
return SomeImpl2;
}
}
通常在我的根上下文类中,我会这样做:
一般来说,在我的根上下文类中,我会做如下操作:
@Import(Config1.class)
@Configuration
public class RootConfig {
...
}
当然,我也可以使用
Config2
做同样的事情。
但是如果我想在运行时选择加载它们中的哪一个,而不是使用@Import
。就像这样:
@Configuration
public class RootConfig {
@DynamicImports // Made-up annotation
public void loadConfigs() {
// Do some logic here that imports Config1 or Config2 dynamically by some parameters (for example, env param)
}
}
@Configuration
的内容,并给出了答案。但我想知道是否有一种用简单的if
来实现它的方法。人们通常不喜欢配置文件中的某些内容,因为它不太清晰。 - Avi