Spring Boot 使用@Value创建对象

rsaldnfx  于 2023-05-28  发布在  Spring
关注(0)|答案(1)|浏览(190)

我尝试使用@Value注解来读取字符串参数值并使用此值创建对象。我尝试了以下方法:
yml中的参数

app:
  report:
    time-zone: +00:00

使用参数创建对象:

@Value("#{ java.time.ZoneId.of('app.report.time-zone') }")
ZoneId reportZoneId;

但得到的错误:
通过字段“reportZoneId”表示的不满足的依赖关系:表达式分析失败
是语法有问题还是根本不可能?

jdzmm42g

jdzmm42g1#

以下是该用例的正确语法:

@Value("#{T(java.time.ZoneId).of('${app.report.time-zone}')}")
ZoneId reportZoneId;

相关问题