我正在尝试根据属性文件中的值启用/禁用控制器。 我的控制器看起来像这样:
@RestController
@ConditionalOnExpression("${properties.enabled}")
public class Controller{
public String getSomething() {
return "Something";
}
}
我的属性文件如下所示:
properties.enabled= false
并且控制器始终处于启用状态(我可以访问方法getSomething)。我也试过这样的组合:
@ConditionalOnExpression("${properties.enabled:true}")
@ConditionalOnExpression("${properties.enabled}==true")
@ConditionalOnExpression("${properties.enabled}=='true'")
@ConditionalOnExpression("'${properties.enabled}'=='true'")
编辑: 还尝试了不同的注释:
@ConditionalOnProperty(prefix = "properties", name="enabled")
答案 0 :(得分:0)
我终于找到了问题。这个Bean不是由Spring创建的,而是在WebConfiguration类中创建的,所以我不得不在那里添加注释
angular.module('ngApp').controller
我的控制器现在看起来像这样:
public class CommonWebConfiguration extends WebMvcConfigurationSupport {
@Bean
@ConditionalOnProperty(prefix="properties",name = "enabled")
public Controller controller() {
return new Controller ();
}
}