首页  编辑  

利用@PostConstrcut为注解中使用的环境变量动态设置值

Tags: /Java/   Date Created:
考虑如下情况:
现在有个 注解,例如:

@MyLog(value = "${demo.category}", name = "demo")
public void demo() {
   // ...
}
这个 demo.category 的值,我们可以在 application.yml 中设置,但是这样设置是静态的,如果我们希望在程序启动的时候,读取数据库中的值来用在注解中,可以考虑使用下面的方法。

@Component
public class Demo {
    @Autowired
    ConfigurableEnvironment env;

    @PostConstruct
    public void init() {
        // get value ...
        env.getSystemProperties().put("demo.category", "Your value");
    }

    @MyLog(value = "${demo.category}", name = "demo")
    public void demo() {
           // ...
    }
}

这样就能动态给注解中的环境变量赋值了。