【问题标题】:Micronaut PropertySource for multiple configuration files用于多个配置文件的 Micronaut PropertySource
【发布时间】:2019-03-29 18:41:25
【问题描述】:

我有一个 micronaut 项目,我想为私有数据(如数据库连接等)提供一个未版本化的配置文件

此信息必须通过 @Property 注释加载,但由于会有多个 .yml(至少还有一个 application.yml)您希望能够提供文件的@Properties 路径,以便能够区分在哪里查找属性。

由于这是我的第一个 micronaut 项目,我对这些东西有点迷茫,但以 springboot 为例,我想做的是:

@PropertySource("classpath:configprops.properties")

但是在阅读了 micronaut 文档(https://docs.micronaut.io/latest/guide/index.html#configurationProperties) 之后,我发现自己无法做到这一点(除非只是阅读我认为不符合 micronaut 标准的普通文件)

【问题讨论】:

    标签: java configuration micronaut


    【解决方案1】:

    我通过传递 jvm 参数来做到这一点。

    例如,如果我在本地机器上使用 gradle:run 运行它,我将以下内容添加到 build.grade

    run.jvmArgs('-Dmicronaut.environments=dev', "-Dmicronaut.config.files=${System.getProperty("user.home")}/auth-config.groovy")
    

    对于我的 jar 部署,我制作了一个 deploy.sh 文件,如下所示:

    #!/bin/bash
    
    fuser -k 8181/tcp
    
    nohup java -Xmx512m -Dmicronaut.environments=staging -Dmicronaut.config.files=<path-to-config>/config.groovy -jar application-0.1-all.jar > application.log 2>&1 &
    

    另外请注意,我传递了不同的环境名称,这有助于您在需要时直接在代码中包含开发环境配置。

    喜欢

    • 应用程序-[环境名称].groovy
    • 应用程序-[环境名称].yml
    • 应用程序-[环境名称].properties

    这将帮助您项目的新贡献者加快流程项目设置,我通常还会在我的 application-dev.groovy 文件中包含注释

    DEVELOPER NOTE:
    ***** DO NOT COMMIT ANY CHANGE IN THIS FILE IF YOU MAKE ANY
    *******************************************************
    ***** CREATE <config.groovy> file in your <HOME> folder and copy paste content of this file
    ***** Override properties as required
    *******************************************************
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2020-08-31
      • 2018-04-01
      • 1970-01-01
      相关资源
      最近更新 更多