Skip to content

配置与环境变量 ​

配置层次 ​

ecshopx-java 采用 Spring Boot 标准配置机制:

来源用途
application.properties模块/默认配置(随 jar 打包)
application-local.properties本地开发样例(ecshopx-bootstrap/src/main/resources/)
环境变量 / APP_ARGS部署覆盖(Docker、docker run -e)

约定:

  • 业务代码通过 @Value、@ConfigurationProperties 或 Environment 读取已绑定好的属性,不要在业务类中散落 System.getenv();
  • 生产密钥 必须 由运维注入,禁止 将真实密码提交进 Git;
  • Docker 镜像通过 APP_ARGS 以 Spring Boot CLI 形式覆盖属性(见 本地 / Docker 部署)。

示例(docker run):

bash
-e APP_ARGS="--spring.datasource.url=jdbc:mysql://<host>:3306/ecshopx \
            --spring.datasource.username=ecshopx \
            --spring.datasource.password=*** \
            --spring.data.redis.host=<host> \
            --spring.data.redis.password=*** \
            --xxl.job.admin.addresses=http://<host>:9080/xxl-job-admin \
            --xxl.job.accessToken=***"

本地 IDE 运行:激活 local profile 或直接使用 application-local.properties 中的默认值。


spring.datasource.* ​

MySQL 主库连接,定义于 application-local.properties:

属性说明本地样例
spring.datasource.urlJDBC URL,含字符集与时区jdbc:mysql://127.0.0.1:3306/ecshopx?...&serverTimezone=Asia/Shanghai
spring.datasource.username数据库用户ecshopx
spring.datasource.password数据库密码本地占位,生产由环境注入
spring.datasource.driver-class-name驱动类com.mysql.cj.jdbc.Driver

Flyway 迁移开关与路径:spring.flyway.*(本地常设 enabled=false,由运维策略决定)。


spring.data.redis.* ​

默认 Redis 连接(主机、端口、密码、逻辑库索引):

属性说明本地样例
spring.data.redis.hostRedis 主机127.0.0.1
spring.data.redis.port端口6379
spring.data.redis.password密码redispassword(compose 默认)
spring.data.redis.database默认逻辑库索引0

多逻辑库(companys / prism / datacube / deposit 等)由 MultiRedisConfig 与 ecshopx.redis.* 扩展,见 应用缓存。

补充 Lettuce 超时与连接校验:

  • ecshopx.redis.lettuce.command-timeout
  • ecshopx.redis.lettuce.connect-timeout
  • ecshopx.redis.lettuce.validate-connection

JWT_SECRET ​

运营端 / H5 / 商户入驻 JWT 签名密钥。

属性说明
JWT_SECRET32 字节密钥的 标准 Base64(openssl rand -base64 32)
JWT_TTLAccess token 有效期(秒),默认 7200
JWT_REFRESH_TTL刷新窗口(分钟)
ecshopx.h5.jwt.secret-base64引用 ${JWT_SECRET}
ecshopx.merchant.wxapp.jwt.secret-base64商户 API 共用或独立覆盖

生产必须 更换仓库内样例值;缺失或格式错误会导致 JWT 签发/校验失败。


ecshopx.storage.driver ​

对象存储驱动,通过 ecshopx.storage.driver 配置。

值含义
local本地磁盘
oss阿里云 OSS
qiniu七牛
awsAWS S3 兼容
cosv5腾讯云 COS

本地样例:ecshopx.storage.driver=oss,并配置对应 ecshopx.storage.oss.* / qiniu.* / aws.* / cos.* 子项。导入导出专用桶见 ecshopx.storage.import-file.*。

运维细节见 云存储(后续章节)。


xxl.job.* ​

XXL-JOB 执行器与 Admin 通信(定时任务统一经 XXL-JOB 注册)。

属性说明本地样例
xxl.job.admin.addressesAdmin 根地址http://127.0.0.1:9080/xxl-job-admin
xxl.job.accessTokenAdmin 与 Executor 鉴权令牌ecshopx-cron-dev
xxl.job.executor.appname执行器 AppNameecshopx-executor
xxl.job.executor.port执行器端口19999
xxl.job.executor.logpath执行日志目录logs/xxl-job

docker-compose 中 Admin 可能映射为 8080 或 9080,以当前 docker-compose.yml 与 异步与定时任务 为准;accessToken 须与 Admin 配置一致。


读取方式小结 ​

  1. 本地:编辑 application-local.properties 后启动 EcshopxApplication。
  2. 容器:APP_ARGS 或环境变量(Spring Boot relaxed binding,如 SPRING_DATASOURCE_URL)。
  3. 禁止:在业务代码中硬编码环境相关 URL、密码;敏感项走配置注入。

相关章节 ​