java - 基于多个目录的spring profile配置
问题描述
我的 spring boot application.properties 需要针对不同的环境进行设置,例如 dev、test、uat 和 prod。当前项目设置从 application.properties (classpath:resources) 和 config.properties 加载属性(这个具有覆盖 dev、test、prod 中的连接)。我们每个环境都有一堆其他 .properties 文件和 jks 文件。我想像这样拆分每个环境的 application.properties:
classpath:
resources/default/* (loads each property everytime)
resources/local/* (only overrides for local + jks file for this env)
resources/dev/* (only overrides for local + jks file for this env)
resources/test/* (only overrides for local + jks file for this env)
resources/prod/* (only overrides for local + jks file for this env)
我正在使用@configurationproperties 和@value 来绑定值。我可以从清单中传递 spring.profiles.active 。我怎样才能做到这一点?
解决方案
您需要为此设置一些系统属性(通常在 main 中完成,就在SpringApplication.run(UserApiApplication.class, args);
属性如下。
System.setProperty("spring.config.location", "classpath:/config/dev/");
注意资源文件夹被省略。加载它们实际上是使用弹簧配置文件完成的,其中配置文件名称是文件名。
例如config/dev/application-something.yml
,配置文件是需要启用的东西。这是一个简单的指南来帮助你。
https://www.baeldung.com/spring-profiles
推荐阅读
- node.js - 连接包含 PUG 文件
- android - 如何使用导航组件从 Fragment 导航到 Activity?
- python - 从请求 POST 响应中解析 JSON 嵌套数据
- webpack - 如何通过从 v4 到 v5 的重大更改来更新 webpack 插件?
- c - C99中与常量表达式相关的未定义行为的含义和示例
- sql - 得到 x_i 和 x_i+1 的总和
- loops - SPSS-statistics25 中多个外部文件的变量总和
- python - 使用硒的无头模式不起作用
- android - 使用 Getx ,来自 firestore 的 Flutter Dropdown 提要,选择的值在选择新值时不会改变,
- sonos - 在一个 Sonos 音乐合作伙伴帐户下发布多项服务