8

我使用指南在 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"
4

2 回答 2

13

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

正确的语法是(Groovy):

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

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

爪哇:

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

科特林:

@Value("\${aws.secretkeyid}")
keyId: String

请注意,您必须使用反斜杠来转义美元符号以避免 Kotlin 字符串模板

于 2018-11-23T10:54:06.553 回答
8

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

语法如下

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

PS:这是 Micronaut 文档中提到的,但在我使用 Micronaut 版本 1.0.0 时不适用于我的情况

于 2018-11-23T18:17:38.873 回答