gpt4 book ai didi

java - @ConditionalOnExpression 启用/禁用@RestController

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:58 29 4
gpt4 key购买 nike

我正在尝试根据属性文件中的值启用/禁用 Controller 。我的 Controller 如下所示:

@RestController
@ConditionalOnExpression("${properties.enabled}")
public class Controller{
public String getSomething() {
return "Something";
}
}

我的属性文件如下所示:

properties.enabled= false

并且 Controller 始终处于启用状态(我可以访问方法 getSomething)。我也尝试过这样的组合:

@ConditionalOnExpression("${properties.enabled:true}")
@ConditionalOnExpression("${properties.enabled}==true")
@ConditionalOnExpression("${properties.enabled}=='true'")
@ConditionalOnExpression("'${properties.enabled}'=='true'")

编辑:还尝试了不同的注释:

@ConditionalOnProperty(prefix = "properties", name="enabled")

最佳答案

终于找到问题所在了。这个 Bean 不是由 Spring 创建的,而是在 WebConfiguration 类中创建的,所以我还必须在那里添加注释

public class CommonWebConfiguration extends WebMvcConfigurationSupport {
@Bean
@ConditionalOnProperty(prefix="properties",name = "enabled")
public Controller controller() {
return new Controller ();
}
}

我的 Controller 现在看起来像这样:

@RestController
@ConditionalOnProperty(prefix="properties",name = "enabled")
public class Controller{
public String getSomething() {
return "Something";
}
}

关于java - @ConditionalOnExpression 启用/禁用@RestController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36219979/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com