micronaut.config.files
您可以使用系统属性提供其他配置文件。您可以使用-D
或通过导出MICRONAUT_CONFIG_FILES
环境变量来定义它。
-D
具有系统属性选项的变体
java -Dmicronaut.config.files=/etc/fooApp/application.yml -jar fooApp.jar
具有内联环境变量的变体
MICRONAUT_CONFIG_FILES=/etc/fooApp/application.yml java -jar fooApp.jar
具有导出环境变量的变体
export MICRONAUT_CONFIG_FILES=/etc/fooApp/application.yml
java -jar fooApp.jar
当您使用此技术提供附加配置文件时,所有在 中定义的值/etc/fooApp/application.yml
都将优先于在例如classpath:application.yml
文件中定义的值。如果要控制特定顺序,则需要定义逗号分隔的配置文件。例如,如果你想提供一个额外的配置文件,但你想获得classpath:application.yml
文件的优先级,那么你需要执行以下操作:
java -Dmicronaut.config.files=/etc/fooApp/application.yml,classpath:application.yml -jar fooApp.jar
更多信息:https ://docs.micronaut.io/latest/guide/index.html#propertySource
⚠️注意:如果您想将此/etc/fooApp.application.yml
位置硬编码到您的 CLI 应用程序中,您可以执行
System.setProperty("micronaut.config.files", "/etc/fooApp/application.yml");
在main()
CLI 应用程序类的方法中。但是,ConfigurationException
如果文件不存在,您会得到,所以请记住,如果您决定使用这种方法,您可能需要进行一些额外的检查。我在stackoverflow-cli
应用程序中做了类似的事情来存储访问令牌并稍后将其注入声明性 HTTP 客户端。