Micronaut PropertySource用于多个配置文件

时间:2019-03-29 18:41:25

标签: java configuration micronaut

我有一个micronaut项目,我想要一个用于私有数据(如数据库连接等)的未转换配置文件

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

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

@PropertySource("classpath:configprops.properties")

但是,在阅读了micronaut文档(https://docs.micronaut.io/latest/guide/index.html#configurationProperties)之后,我发现自己无法执行此操作(除了类似读取普通文件(我认为这可能不符合micronaut规范)之类的东西之外)

1 个答案:

答案 0 :(得分:0)

我通过传递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 &

还要注意,我传递的是不同的环境名称,这有助于您根据需要直接在代码中包含开发环境配置。

  • application- [environment_name] .groovy
  • application- [environment_name] .yml
  • application- [environment_name] .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
*******************************************************