Spring 注解中使用环境变量

@EnableWebSecurity(debug = true)

这里的 true 怎么样才能通过 application.properties 中的值来确定呢?

注解的值中能否使用条件判断, 如果某个开关打开才使用某个注解的值?

阅读 6.9k
2 个回答

能想到的一种有点绕的方式是用 profie 做

@Configration
@EnableWebSecurity(debug = true)
@Profile("debug-security")
public class DebugConfig{}
@Configration
@EnableWebSecurity
@Profile("!debug-security")
public class NormalConfig{}

然后需要开 debug 的 yaml 里 include 这个 profile 就行了

spring:
  profiles:
    include:
      - debug-security

好像还有一种方式是这样,但是应该也需要配合 profile 做


@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.debug(true);
    }
}

注解内的某个值是不能根据条件决定的。之前我也要一个场景是 @MyAnnotation(key=value),当条件1满足时,key=value1,当条件2满足时,key=value2。最终没有找到解决办法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题