如果让 springboot 去管理,那就要打包各个环境的配置在一个包里,让 springboot 根据一些 convention 去区分开不同的 profile ,但是这样感觉不太安全。
如果让 maven 去管理的话,每个环境一个配置文件,但是又总是会有一些公共的配置,每次改动要改好几个文件。
各位彦祖有啥好办法🐴
1
Vkery 224 天前
nacos?
|
2
qinxi 224 天前
但是这样感觉不太安全. 不如说说怎么不安全?
spring 自身的 profile 就是用来干这个的, 敏感数据用环境变量就是了. |
3
mango88 224 天前
公共的放 application.yml
环境特定的放 application-${spring.profiles.active}.yml |
4
cslive 224 天前 1
直接配置中心,服务器设置环境变量,不同环境写入不同环境变量
|
5
cookii 224 天前 via Android
放在 k8s 里
|
6
28Sv0ngQfIE7Yloe 224 天前
k8s configMap
|
7
chaos93 224 天前
试试我的: http://42.192.143.114:23482/chat/ZM7TOinOY29cUTUA
问问 AI |
8
vczyh 224 天前
就一个配置文件,然后注入环境变量,例如:
data: redis: host: ${REDIS_HOST:127.0.0.1} username: ${REDIS_USER:default} password: ${REDIS_PWD:123} |
9
yuanxiaosong 224 天前 2
不使用 spring cloud/docker/k8s 管理配置
1. 使用外部 env 文件管理: application.yml ``` spring: config: import: optional:file:.env[.properties] datasource: url: ${DATASOURCE_URL:jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8} username: ${DATASOURCE_USERNAME:root} password: ${DATASOURCE_PASSWORD:root} ``` .env ``` DATASOURCE_USERNAME=test DATASOURCE_PASSWORD=test ``` 优先使用 env 中的值,如果 env 中未找到对应值,则使用 yml 中的值,根据不同环境指定不同的 env 文件; 2. 启动时候通过启动参数配置 java -jar xxx.jar --spring.datasource.username=test --spring.datasource.password=test |
10
hekouwang123 224 天前
我们之前用的 apollo ,挺好用的
|
11
guozi1117 224 天前
apollo 或者 nacos
|
12
nekoneko 224 天前
配置中心那么多, 随便选一个
|
13
cheng6563 224 天前
SpringBoot 天生自带配置文件合并,还要怎么管,生产服务器上放一份生产配置完事。
|
14
xliao 224 天前 1
源码仍然采用 application.yml + application-${spring.profiles.active}.yml 方式,
打包的时候根据 profile 忽略掉其他环境的配置,不同环境 jar 就只包含公共 yml+自身的 yml 了 |
18
paynezhuang 224 天前
@xliao 来破配置参考参考
|
23
hai046 223 天前
了解一下微服务中配置中心,可以单独去了解配置中心 apollo/nacos 即可。
|