@@ -0,0 +1,30 @@
|
||||
package com.yunhai.userbase.service.impl;
|
||||
|
||||
import com.yunhai.platform.envconfig.EnvConfigSource;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* env-config 数据源实现:整站已停用 nacos 配置中心,改为从 Spring Environment 读取静态属性。
|
||||
* 键 = {@code yh.env-config.source.<target>},三处可配(优先级由 Environment 决定):
|
||||
* 1) 启动参数 --yh.env-config.source.front='{...}'
|
||||
* 2) 环境变量 YH_ENV_CONFIG_SOURCE_FRONT(projman .env / Gitea Secrets 注入,宽松绑定)
|
||||
* 3) application.yml 内 yh.env-config.source.front 键
|
||||
* 未配置返回 null,平台 EnvConfigService 会归一为 "{}" 返回(前端走同源推断兜底,接口保持 200)。
|
||||
*/
|
||||
@Service
|
||||
public class PropertyEnvConfigSource implements EnvConfigSource {
|
||||
|
||||
private static final String KEY_PREFIX = "yh.env-config.source.";
|
||||
|
||||
private final Environment environment;
|
||||
|
||||
public PropertyEnvConfigSource(Environment environment) {
|
||||
this.environment = environment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String get(String target) {
|
||||
return environment.getProperty(KEY_PREFIX + target);
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
spring:
|
||||
application:
|
||||
name: userbase
|
||||
# 本地默认 local(不连 nacos);CI 注入 SPRING_PROFILES_ACTIVE=prod
|
||||
profiles:
|
||||
active: ${SPRING_PROFILES_ACTIVE:local}
|
||||
cloud:
|
||||
nacos:
|
||||
config:
|
||||
# ⭐ 本地默认关闭 nacos(profile=local 时完全不连,无 403 噪音,纯走 application.yml)
|
||||
# CI 注入 NACOS_CONFIG_ENABLED=true 才启用,拉 prod namespace 配置覆盖 application.yml
|
||||
enabled: ${NACOS_CONFIG_ENABLED:false}
|
||||
# Nacos 配置中心地址;CI 注入 NACOS_ADDR=nacos:8848(容器内网别名)
|
||||
server-addr: ${NACOS_ADDR:nacos.yunhaixingtong.com:8848}
|
||||
# 默认指向 prod namespace UUID,避免本地误开时连到空的 dev 命名空间
|
||||
# CI 用 SPRING_CLOUD_NACOS_CONFIG_NAMESPACE 覆盖(注意:NACOS_NAMESPACE 这个 env 名不生效,必须用 SPRING_CLOUD_NACOS_CONFIG_NAMESPACE)
|
||||
namespace: ${SPRING_CLOUD_NACOS_CONFIG_NAMESPACE:6196f0de-a28d-4894-8f10-e2982b57c6bc}
|
||||
# 主配置 group:userbase.yaml 在 USERBASE group(与下方 shared-configs 的 DEFAULT_GROUP 不同组,各自指定)
|
||||
group: USERBASE
|
||||
# 配置文件格式;最终主配置 dataId = ${spring.application.name}.${file-extension} = userbase.yaml
|
||||
file-extension: yaml
|
||||
encode: UTF-8
|
||||
# nacos 不可达时不强制退出,回退到本地 application.yml 兜底
|
||||
fail-fast: false
|
||||
# 只读账号(仅读取配置权限);CI 注入 SPRING_CLOUD_NACOS_USERNAME/PASSWORD
|
||||
# 注意:凭据必须用顶层 SPRING_CLOUD_NACOS_* env,放在 spring.cloud.nacos.config.* 下不生效(403)
|
||||
username: ${SPRING_CLOUD_NACOS_USERNAME:yh-reader}
|
||||
password: ${SPRING_CLOUD_NACOS_PASSWORD:123456}
|
||||
|
||||
# ============================================================
|
||||
# ⭐⭐⭐ 共享配置加载顺序(决定优先级!:排在数组越靠后 = 优先级越高 = 覆盖前面的同 key)
|
||||
# 低 1) public 命名空间 application-default.yaml(跨环境公共:日期格式/上传大小等,所有应用都能继承)
|
||||
# 中 2) prod 命名空间 application-infra.yaml(仅生产:mysql/redis/rabbitmq 中间件连接)
|
||||
# 高 3) prod 命名空间 userbase.yaml(应用级主配置:上传路径/context-path/CAS等,覆盖前两个)
|
||||
# 最高 4) 启动命令 -D 参数 / 环境变量(覆盖一切)
|
||||
# ============================================================
|
||||
shared-configs:
|
||||
# ① 1 号(最低优先级):public 命名空间(namespace="" 固定写空字符串)的 application-default.yaml
|
||||
- data-id: application-default.yaml
|
||||
group: DEFAULT_GROUP
|
||||
namespace: "" # ⭐ 固定 = "",强制指向 Nacos "public" 命名空间,不读上面的全局 prod namespace
|
||||
refresh: false
|
||||
|
||||
# ② 2 号(中等优先级):prod 命名空间(不写 namespace = 继承顶部全局 prod namespace id)的 application-infra.yaml
|
||||
- data-id: application-infra.yaml
|
||||
group: DEFAULT_GROUP
|
||||
refresh: false
|
||||
Reference in New Issue
Block a user