有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java@ConditionalOnProperty可以使用嵌套的属性值吗?

我想做一些事情,比如:

@ConditionalOnProperty("${${appname}.someVal}")
@Controller
public class MyController {...}

我的yaml会:

appname: myapp
myapp:
  someVal: true

我该怎么做

编辑:这不起作用:

@Value("#{'${appname}.someVal'}")

共 (1) 个答案

  1. # 1 楼答案

    要计算SpEL,请使用@ConditionalOnExpression而不是@ConditionalOnProperty

    看起来不是很优雅,但这里是:

    @ConditionalOnExpression("#{environment.getProperty('${appname}.someVal') == 'true'}")
    

    environment引用了一个实现^{}的bean,该bean在每个Spring启动应用程序中都是现成的