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

标签 micronaut

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

我想让它配置驱动,因此一直试图找到实现这一目标的方法。

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

@Value("aws.secretkeyid")
String keyId

进一步深入研究文档显示,Micronaut 有自己的注释,用于在变量中注入(inject)属性。
@Property(name="aws.secretkeyid")
String keyId

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

这里可能有什么问题?

作为引用,以下是我的 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/

相关文章:

java - 使用 Micronaut 为 MongoDB 注册编解码器

micronaut - 可以在 HTTP micronaut 声明式客户端中更改服务器吗?

kotlin - 如何通过 gradle 任务执行具有依赖注入(inject)的特定类方法?

jackson - 如何配置 Jackson 在 Micronaut 中使用 SNAKE_CASE?

gradle - 如何配置 micronaut 序列化以使用开放 api 生成的模型?

kotlin - 在 micronaut 属性中使用数据类

jpa - Micronaut CRUD 操作与实体管理器不适用于具有外键的表

entitymanager - Micronauts 无法为 : UserRepository 类的参数 [entityManager] 注入(inject)值

java - micronaut 中未选择配置属性

netty - Micronaut Data with R2DBC 是不是比经典的 “one thread per connection” 模型 Micronaut Data JDBC 更具可扩展性的方法