如何在Micronaut中读取应用程序属性?

时间:2018-11-22 17:55:41

标签: micronaut

我使用指南send mail in micronaut将AWS SES API集成到了Micronaut Groovy应用程序中,并且如果我直接为属性分配值,我就能发送邮件。

我想使其成为配置驱动,因此一直在尝试找到实现该目标的方法。

我尝试了指南中提到的@Value注释,但无法使其正常工作。

@Value("aws.secretkeyid")
String keyId

对文档的进一步研究显示,Micronaut具有用于将属性注入变量的注释。

@Property(name="aws.secretkeyid")
String keyId

但是似乎没有任何作用,我的变量仍然为空。

这里可能有什么问题吗?

作为参考,以下是我的application.yml文件

aws:
  keyid: "2weadasdwda"
  secretkeyid: "abcdesdasdsddddd"
  region: "us-east-1"

2 个答案:

答案 0 :(得分:2)

您使用不正确,是在注入文字值aws.secretkeyid,而不是变量值。

正确的语法是:

@Value('${aws.secretkeyid}')
String keyId

请注意,必须使用单引号来避免Groovy尝试插值

答案 1 :(得分:2)

如果其他人偶然发现了这个问题,您也可以在Micronaut(从1.0.1版本开始)中使用@Property注释

语法如下

@Property(name = "your.application.property")
String propertyName

PS:这是Micronaut文档中提到的内容,但在我的情况下无法正常工作,因为我使用的是Micronaut 1.0.0版