在运行时选择两个Bean。

huangapple go评论66阅读模式
英文:

Choose between 2 Beans in runtime

问题

我正在使用Java Spring。

我有一个Bean,我可以以2种不同的方式创建它,这将仅在运行时通过来自.yml文件的参数(布尔值)来决定。

解决这个问题的简单方法是在参数上使用简单的if条件,并根据其值调用所需的函数。

是否有一种方法可以使用Spring注解来做,而不是在我的代码中处理?

英文:

I am using Java Spring.

I have a Bean that I can create in 2 different ways which will be decided on runtime only, using a parameter (boolean) from .yml file.

The easy way to solve it is to use a simple if condition on the parameter and call the function needed according to it's value.

Is there a way to do it using Spring annotation and not on my code?

答案1

得分: 2

是的,可以使用ConditionalOnProperty注解。

@ConditionalOnProperty(name = "key", havingValue = "true")
doThis() {

}

@ConditionalOnProperty(name = "key", havingValue = "false")
doThat() {

}
英文:

Yes, using the ConditionalOnProperty annotation.

@ConditionalOnProperty(name = "key", havingValue = "true")
doThis() {

}

@ConditionalOnProperty(name = "key", havingValue = "false")
doThat() {

}

huangapple
  • 本文由 发表于 2020年9月17日 23:33:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/63941456.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定