SpringBoot注解中属性实现动态配置

  • A+
所属分类:SpringBoot

一般来说,注解里的值只能是确定的,比如

@Person(name="dfdfd")

如果我想这个name是从配置文件中动态取的,该如何实现呢?比如下面的写法

@Person(name = "${test.name}")

我们知道,直接这样写获取的name是把双引号里整个当成字符串了,那么如何使上面的写法像@Value注解一样取得配置文件里的值呢?其实,spring中已经帮我们提供了相关的方法。我们只需要在解析我们自定义注解时,用下面的方法即可得到配置文件中的值

environment.resolvePlaceholders(name)

而spring的内置对象environment则可以通过实现EnvironmentAware接口来注入。这样一来我们就可以通过配置文件来动态配置name的值了。

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: