我在属性文件中定义了一个属性:property=true
然后我有SomeClass.java
类,如果属性property
设置为true,则仅应创建一个属性配置bean。 >
这是我的SomeClass
班:
public class SomeClass {
//this is the proerty which I set to true or false
@Value("${property}")
private String property;
//this is the bean which needs to be created conditionally based on the property but at the moment it does not get created
@Bean
@ConditionalOnProperty(name="${property}", havingValue="true")
public PropertyConfiguration propertyConfig() {
// doesnt print anything because the bean does not get created
System.out.print(property);
}
}
如果我在matchIfMissing = true
内添加@ConditionalOnProperty
,只是为了实验并查看property
的值,那么就创建了豆 并且我看到property
的值为true
。
如果我删除了matchIfMissing = true
,则将条件保留为@ConditionalOnProperty(name="${property}", havingValue="true")
并将属性property=true
从true
更改为false
true
或false
)。
我该怎么办会根据属性有条件地创建bean?
答案 0 :(得分:2)
请在课程上方添加@Configuration
。
组件扫描不包括您的类,因此需要在类顶部添加一个@Component
或任何其他继承的注释。然后,您的@Bean
应该从spring创建。
希望这会有所帮助。