- A+
所属分类:SpringBoot
一般来说,注解里的值只能是确定的,比如
@Person(name="dfdfd")
如果我想这个name是从配置文件中动态取的,该如何实现呢?比如下面的写法
@Person(name = "${test.name}")
我们知道,直接这样写获取的name是把双引号里整个当成字符串了,那么如何使上面的写法像@Value注解一样取得配置文件里的值呢?其实,spring中已经帮我们提供了相关的方法。我们只需要在解析我们自定义注解时,用下面的方法即可得到配置文件中的值
environment.resolvePlaceholders(name)
而spring的内置对象environment则可以通过实现EnvironmentAware接口来注入。这样一来我们就可以通过配置文件来动态配置name的值了。