application-local.yaml
4.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# ========== 本地开发环境配置 ==========
# ⚠️ 禁止在此文件中提交真实生产密码。生产环境通过环境变量/配置中心注入。
spring:
# ========== 数据源(Druid + MySQL 8)==========
# 停车六库已合并为单库 parking_cloud(表前缀 sys_/park_/pay_/order_/bill_/charge_ 区分)
datasource:
druid:
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:parking_cloud}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
username: ${DB_USERNAME:root}
password: ${DB_PASSWORD:}
driver-class-name: com.mysql.cj.jdbc.Driver
# 连接池配置
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall
# 监控页面:本地开启,生产关闭
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: ${DRUID_USERNAME:admin}
login-password: ${DRUID_PASSWORD:admin}
reset-enable: false
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
# ========== Redis ==========
redis:
host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379}
database: ${REDIS_DATABASE:0}
# ⚠️ 本地 Redis 无密码,这里必须【整行注释】而不是写成 `${REDIS_PASSWORD:}`:
# 后者解析成空字符串 ""(非 null),Redisson 会因此发送 AUTH "",
# Redis 返回 "ERR AUTH <password> called without any password configured",启动直接失败。
# password: ${REDIS_PASSWORD}
timeout: 5000ms
lettuce:
pool:
max-active: 8
max-idle: 8
min-idle: 0
max-wait: 3000ms
# ========== 刷新缓存共享密钥(仅本地/测试)==========
# 老门户 `RefreshCacheController` 的 4 条 `@NoAuth` 端点自带一串写死的 32 位共享密钥;
# 迁移时按 AGENTS.md「批 6 第三十四切片」④ 的 (B) 方案改成**配置化**(代码里零密钥,红线 11)。
# ⚠️ 这里是**本地测试值**,不是任何环境的真实密钥;生产**不配**即 fail-closed
# (任何请求都回 "token不正确"),部署时用 `PARKING_REFRESH_CACHE_TOKEN` 或
# `--parking.refresh-cache.token=...` 配成现网原串即可让老前端/运维脚本零改造。
# ⚠️ 冒烟脚本 `tools/api_smoke.py` 用的是同一个值;改这里必须同步改那边。
parking:
refresh-cache:
token: ${REFRESH_CACHE_TOKEN:local-refresh-cache-test-token}
# ========== 老新组织 id 换算表(仅本地/测试)==========
# 新 `system_org` 只有 1 行 id=1,而存量业务表存的是老 `sys_org.id`(本机镜像里
# 10003 有 498 条 `td_b_api_log`、92 个区块;10007 有 2 条日志)。不配这项时
# `LoginUserBridge` 恒等映射(= 与改造前完全一致,存量接口按 org 过滤会查空)。
# ⚠️ 这里是**本地镜像的测试映射**,不是生产口径;生产用 `LEGACY_ORG_ID_MAPPING`
# 或 `--parking.legacy.org-id-mapping=...` 按实际上线数据配置,格式 `新id:老id,...`。
# ========== 老新操作员 id 换算表(仅本地/测试)==========
# 新 `system_users` 只有 admin(id=1),本机 `sys_op` 是空表,没有真实老 id 可对。
# 这里给一个**本地测试值**,只为验证换算链路真的生效(opId 会写进审计列);
# 它不是生产口径,生产必须按真实 `sys_op` 数据用 `LEGACY_OP_ID_MAPPING` 配置。
legacy:
org-id-mapping: ${LEGACY_ORG_ID_MAPPING:1:10003}
op-id-mapping: ${LEGACY_OP_ID_MAPPING:1:10001}
# ========== 日志级别 ==========
logging:
level:
root: info
com.zteits.parking: debug
# 打开后可以看到 SQL 语句
com.zteits.parking.framework.mybatis: debug
org.springframework.security: info