Java 在运行时的2个bean之间进行选择

Java 在运行时的2个bean之间进行选择,java,spring,spring-boot,annotations,javabeans,Java,Spring,Spring Boot,Annotations,Javabeans,我正在使用JavaSpring 我有一个Bean,我可以用两种不同的方式创建,这将仅在运行时决定,使用.yml文件中的参数(布尔值) 解决此问题的简单方法是对参数使用简单的if条件,并根据其值调用所需的函数 有没有一种方法可以使用Spring注释而不是在我的代码中执行此操作?是的,使用注释 @conditionalnproperty(name=“key”,havingValue=“true”) doThis(){ } @ConditionalOnProperty(name=“key”,havin

我正在使用JavaSpring

我有一个Bean,我可以用两种不同的方式创建,这将仅在运行时决定,使用
.yml
文件中的参数(布尔值)

解决此问题的简单方法是对参数使用简单的
if
条件,并根据其值调用所需的函数

有没有一种方法可以使用Spring注释而不是在我的代码中执行此操作?

是的,使用注释

@conditionalnproperty(name=“key”,havingValue=“true”)
doThis(){
}
@ConditionalOnProperty(name=“key”,havingValue=“false”)
doThat(){
}

谢谢您的回答!“名称”指的是什么?名称指的是YAML中定义的财产本身。它还由注释中常见的
value
表示。两者可以互换。问题仍然没有解决。我想创建一个同名的bean,但我做不到。我有一个用户在运行时注入的布尔变量,根据它的值,我需要更改配置。但最后,bean是同一个对象。。