代码之家  ›  专栏  ›  技术社区  ›  Aditya T

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

  •  1
  • Aditya T  · 技术社区  · 6 年前

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

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

    我尝试了指南中提到的@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 回复  |  直到 6 年前
        1
  •  2
  •   saw303    6 年前

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

    正确的语法是:

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

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

        2
  •  1
  •   Aditya T    6 年前

    如果有其他人遇到这个问题,您还可以在Micronaut中使用@property annotation(从1.0.1版开始)

    语法如下

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

    PS:这是在Micronaut文档中提到的,但在我的案例中没有起作用,因为我在Micronaut版本1.0.0中提到过。

    推荐文章