如何读取 Micronaut 中的应用程序属性?
How do I read application properties in 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"
您使用不当,您注入的是文字值 aws.secretkeyid
,而不是变量的值。
正确的语法是 (Groovy):
@Value('${aws.secretkeyid}')
String keyId
请注意,您必须使用单引号以避免 Groovy 尝试插值
Java:
@Value("${aws.secretkeyid}")
String keyId;
科特林:
@Value("${aws.secretkeyid}")
keyId: String
请注意,您必须使用反斜杠转义美元符号以避免 Kotlin 字符串模板
如果其他人偶然发现了这个问题,您也可以选择在 Micronaut(从 1.0.1 版本开始)中使用 @属性 注解
语法如下
@Property(name = "your.application.property")
String propertyName
PS :这是 Micronaut 文档中提到的,但在我的情况下不起作用,因为我使用的是 Micronaut 版本 1.0.0
我使用指南 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"
您使用不当,您注入的是文字值 aws.secretkeyid
,而不是变量的值。
正确的语法是 (Groovy):
@Value('${aws.secretkeyid}')
String keyId
请注意,您必须使用单引号以避免 Groovy 尝试插值
Java:
@Value("${aws.secretkeyid}")
String keyId;
科特林:
@Value("${aws.secretkeyid}")
keyId: String
请注意,您必须使用反斜杠转义美元符号以避免 Kotlin 字符串模板
如果其他人偶然发现了这个问题,您也可以选择在 Micronaut(从 1.0.1 版本开始)中使用 @属性 注解
语法如下
@Property(name = "your.application.property")
String propertyName
PS :这是 Micronaut 文档中提到的,但在我的情况下不起作用,因为我使用的是 Micronaut 版本 1.0.0