Java 如何将@ConditionalOnProperty继承到任何静态内部@Configuration类?
如何创建一个包含静态内部配置类的Java 如何将@ConditionalOnProperty继承到任何静态内部@Configuration类?,java,spring,spring-boot,Java,Spring,Spring Boot,如何创建一个包含静态内部配置类的@Configuration类并继承@ConditionalOnProperty @Configuration @ConditionalOnProperty(value = "my.property", havingValue = "true") public class MyConfiguration { @Configuration static class SubConfig1 { } @Configuration
@Configuration
类并继承@ConditionalOnProperty
@Configuration
@ConditionalOnProperty(value = "my.property", havingValue = "true")
public class MyConfiguration {
@Configuration
static class SubConfig1 {
}
@Configuration
static class SubConfig2 {
}
....
}
在本例中,我希望仅当父类上的条件为true时才加载内部类,因此我不必为每个配置类重复该条件。这可能吗?您对所有用
@配置注释的嵌套类的理解都是错误的
将自动加载
在引导这样的安排时,只需要针对应用程序上下文注册AppConfig由于是嵌套的@Configuration类,DatabaseConfig将自动注册。这避免了在AppConfig和DatabaseConfig之间的关系已经隐式清除时使用@Import注释的需要
因此,通过使用@ConditionalOnProperty
您只能避免在config类中声明的bean,但在条件指定之前,您无法避免带有@Configuration
注释的嵌套类
例如,如果my.property
为false,则下面的方法将避免bean加载到ApplicationContext
@Configuration
@ConditionalOnProperty(value = "my.property", havingValue = "true")
public class MyConfiguration {
@Bean
public SubConfig1 getSubConfig1() {
return new SubConfig1();
}
@Bean
public SubConfig2 getSubConfig2() {
return new SubConfig2();
}
static class SubConfig1 {
}
static class SubConfig2 {
}
}
因此,如果我理解如果条件属性
的计算结果为真,那么我应该总共加载三个beanMyConfiguration
,subclofig1
和subclofig2
,如果不是,请详细说明一下?是的,这是我的目标。如果条件匹配,它应该加载这3个子@Configuration
类。但是,如前所述,如果条件不为true,甚至会加载所有这3个类。您可以显示yml
或properties
文件中指定的属性吗?my.property=true
?因此,当您不想加载配置bean时,将其设置为false
?