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

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

我按照指南中的说明尝试了@Value批注,但无法使其正常工作。

@Value("aws.secretkeyid")
String keyId

进一步深入研究发现,Micronaut具有用于将属性注入(inject)变量的注释。
@Property(name="aws.secretkeyid")
String keyId

但是似乎没有任何效果,我的变量仍然为null。

在这里可能出什么问题了?

供引用,以下是我的application.yml文件中
aws:
  keyid: "2weadasdwda"
  secretkeyid: "abcdesdasdsddddd"
  region: "us-east-1"

最佳答案

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

正确的语法是(Groovy):

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

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

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

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

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

关于micronaut - 如何在Micronaut中读取应用程序属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53436144/

10-11 23:54