Compare commits
11 Commits
cc46e13503
...
044f9e31f3
| Author | SHA1 | Date | |
|---|---|---|---|
| 044f9e31f3 | |||
| 5931d65806 | |||
| 57cc87a145 | |||
| 386751b045 | |||
| ee335fe90a | |||
| 2277bca1ad | |||
| 726fc229d6 | |||
| 1d6cb64ed3 | |||
| 61fa206a45 | |||
| 8506424c26 | |||
| 01f36acdd7 |
+6
-5
@@ -7,11 +7,12 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
ai-skills/
|
ai-skills/
|
||||||
├── README.md # 本说明
|
├── README.md # 本说明
|
||||||
├── issue-workflow.md # 工单处理流程
|
├── nacos-config-rules.md # Nacos 配置与 application.yml 规范
|
||||||
├── gitea-api.md # Gitea API 使用指南
|
├── issue-workflow.md # 工单处理流程
|
||||||
├── menu-config.md # 菜单配置规范
|
├── gitea-api.md # Gitea API 使用指南
|
||||||
└── commit-standards.md # 提交规范
|
├── menu-config.md # 菜单配置规范
|
||||||
|
└── commit-standards.md # 提交规范
|
||||||
```
|
```
|
||||||
|
|
||||||
## 使用方式
|
## 使用方式
|
||||||
|
|||||||
@@ -0,0 +1,267 @@
|
|||||||
|
# RUI 项目 Nacos 配置与 application.yml 规范
|
||||||
|
|
||||||
|
> **适用范围**: rui-framework 后端框架所有模块
|
||||||
|
> **更新日期**: 2026-06-05
|
||||||
|
> **强制级别**: 必须遵守,AI 编辑相关文件时自动强制执行
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 核心原则
|
||||||
|
|
||||||
|
### 1. 配置分层
|
||||||
|
|
||||||
|
| 配置位置 | 用途 | 内容 |
|
||||||
|
|---------|------|------|
|
||||||
|
| **Nacos** (`docs/backend/config-templates/nacos/*.yaml`) | 动态配置 | 端口、业务配置 |
|
||||||
|
| **本地** (`src/main/resources/application.yml`) | 兜底配置 | 基础框架配置 + Nacos 连接信息 |
|
||||||
|
| **公共** (`rui-common.yaml`, `rui-data.yaml`) | 共享配置 | Feign、Redis、数据库等 |
|
||||||
|
|
||||||
|
### 2. 禁止重复
|
||||||
|
|
||||||
|
**Nacos 服务专属配置只放:端口 + 该服务特有的业务配置**
|
||||||
|
|
||||||
|
- ❌ **禁止**:在 `rui-service-*.yaml` 中放 nacos/feign/redis/数据库配置
|
||||||
|
- ✅ **正确**:只放 `server.port` 和业务配置(如 `rui.modules`)
|
||||||
|
|
||||||
|
### 3. 单向同步
|
||||||
|
|
||||||
|
**Nacos 配置为准,`src/main/resources/application.yml` 必须和 Nacos 配置完全一致。**
|
||||||
|
|
||||||
|
修改流程:
|
||||||
|
1. 先修改 `docs/backend/config-templates/nacos/*.yaml`(Nacos 源文件)
|
||||||
|
2. 推送到 Nacos
|
||||||
|
3. 复制内容到 `src/main/resources/application.yml`(本地兜底)
|
||||||
|
|
||||||
|
> ⚠️ **禁止**:两个文件内容不一致
|
||||||
|
|
||||||
|
### 4. 推送必验证
|
||||||
|
|
||||||
|
推送 Nacos 后必须验证:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl "http://192.168.31.210:8848/nacos/v1/cs/configs?dataId=xxx.yaml&group=DEFAULT_GROUP&tenant=rui-dev&username=nacos&password=nacos"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 规则详解
|
||||||
|
|
||||||
|
### Rule 1:application.yml 严格模板化
|
||||||
|
|
||||||
|
**要求**:
|
||||||
|
|
||||||
|
- 新建模块或 `application.yml` 丢失时,**完整复制** `docs/backend/config-templates/application-template.yml`
|
||||||
|
- **禁止合并**其他内容
|
||||||
|
- **禁止新增**任何模板外的内容
|
||||||
|
- 只允许修改模板中**明确标注允许修改**的位置
|
||||||
|
|
||||||
|
**当前模板中允许修改的位置**:
|
||||||
|
|
||||||
|
1. `server.port` — 按模块端口规划填写
|
||||||
|
2. 无 MyBatis 的模块删除 `rui-data` 的 `config.import`
|
||||||
|
|
||||||
|
> 未来如果 `application-template.yml` 更新并新增可修改项,以模板中的注释标注为准。
|
||||||
|
|
||||||
|
### Rule 2:业务配置全进 Nacos
|
||||||
|
|
||||||
|
**要求**:
|
||||||
|
|
||||||
|
- 各模块特有业务配置必须写在 `docs/backend/config-templates/nacos/{模块名称}.yaml`
|
||||||
|
- 例:`rui-service-system` → `rui-service-system.yaml`
|
||||||
|
- 例:`rui-gateway` → `rui-gateway.yaml`
|
||||||
|
- 例:`rui-auth` → `rui-auth.yaml`
|
||||||
|
- 修改完成后必须推送到 Nacos
|
||||||
|
- Nacos 服务配置**不得包含** `application.yml` 中的通用内容,包括但不限于:
|
||||||
|
- Nacos 连接配置(`spring.cloud.nacos.discovery/config`)
|
||||||
|
- Spring 生命周期(`spring.lifecycle`)
|
||||||
|
- 自动配置排除(`spring.autoconfigure.exclude`)
|
||||||
|
- 文件上传限制(`spring.servlet.multipart`)
|
||||||
|
- 编码配置(`spring.servlet.encoding`)
|
||||||
|
- OpenFeign 断路器(`spring.cloud.openfeign.circuitbreaker`)
|
||||||
|
- `management.endpoints`
|
||||||
|
- `logging.file.path`
|
||||||
|
|
||||||
|
**例外**:如果某模块确实需要覆盖 application.yml 中的某个默认值,可以在 Nacos 配置中显式覆盖,但必须在注释中说明理由。
|
||||||
|
|
||||||
|
### Rule 3:公共配置职责分离
|
||||||
|
|
||||||
|
**要求**:
|
||||||
|
|
||||||
|
| 配置文件 | 职责范围 | 典型内容 |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| `rui-common.yaml` | 所有模块都可能用到的通用配置 | Redis、RabbitMQ、Jackson、JWT、安全白名单、Feign providers |
|
||||||
|
| `rui-data.yaml` | 仅数据库相关模块导入 | 数据源、MyBatis Plus、Seata |
|
||||||
|
|
||||||
|
**原因**:没有使用数据库的模块(如 Gateway)也可能需要 Redis,因此 Redis 不能放在 `rui-data.yaml`。
|
||||||
|
|
||||||
|
### Rule 4:推送必验证
|
||||||
|
|
||||||
|
**要求**:
|
||||||
|
|
||||||
|
修改 Nacos 配置并推送后,必须执行验证命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl "http://192.168.31.210:8848/nacos/v1/cs/configs?dataId={dataId}.yaml&group=DEFAULT_GROUP&tenant=rui-dev&username=nacos&password=nacos"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rule 5:本地开发配置不干预
|
||||||
|
|
||||||
|
**要求**:
|
||||||
|
|
||||||
|
- `config/application-dev.yml` 属于本地开发配置
|
||||||
|
- 可由开发人员填写完整配置或仅本地特性配置
|
||||||
|
- AI 正常情况下**不修改**该文件
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 正反对照示例
|
||||||
|
|
||||||
|
### 示例 1:application.yml
|
||||||
|
|
||||||
|
**正确**(仅修改允许位置):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
port: 9302 # ✅ 【允许修改】按模块规划填写
|
||||||
|
shutdown: graceful
|
||||||
|
# ... 其余与模板完全一致 ...
|
||||||
|
```
|
||||||
|
|
||||||
|
**错误**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
server:
|
||||||
|
port: 9302
|
||||||
|
|
||||||
|
# ❌ 错误:在 application.yml 中添加业务配置
|
||||||
|
rui:
|
||||||
|
modules:
|
||||||
|
available:
|
||||||
|
- code: demo
|
||||||
|
name: 演示中心
|
||||||
|
```
|
||||||
|
|
||||||
|
### 示例 2:Nacos 服务配置
|
||||||
|
|
||||||
|
**正确**(仅端口 + 业务配置):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# rui-service-pay.yaml
|
||||||
|
server:
|
||||||
|
port: 9307
|
||||||
|
|
||||||
|
payment:
|
||||||
|
order-timeout: 30
|
||||||
|
notify-max-times: 5
|
||||||
|
```
|
||||||
|
|
||||||
|
**错误**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# rui-service-xxx.yaml
|
||||||
|
server:
|
||||||
|
port: 9307
|
||||||
|
|
||||||
|
# ❌ 错误:Nacos 配置中重复 application.yml 内容
|
||||||
|
spring:
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: ${NACOS_SERVER_ADDR:nacos:8848}
|
||||||
|
lifecycle:
|
||||||
|
timeout-per-shutdown-phase: 30s
|
||||||
|
```
|
||||||
|
|
||||||
|
### 示例 3:公共配置职责
|
||||||
|
|
||||||
|
**正确**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# rui-common.yaml
|
||||||
|
spring:
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
host: ${REDIS_HOST:192.168.31.210}
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# rui-data.yaml
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
url: jdbc:mysql://...
|
||||||
|
```
|
||||||
|
|
||||||
|
**错误**:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# rui-data.yaml
|
||||||
|
spring:
|
||||||
|
data:
|
||||||
|
redis:
|
||||||
|
host: ...
|
||||||
|
# ❌ 错误:Redis 配置不应放在 rui-data.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 修改流程
|
||||||
|
|
||||||
|
### 修改 Nacos 配置的完整流程
|
||||||
|
|
||||||
|
1. **编辑 Nacos 源文件**
|
||||||
|
```bash
|
||||||
|
vim docs/backend/config-templates/nacos/rui-service-xxx.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **推送到 Nacos**
|
||||||
|
- 通过 Nacos 控制台或 API 推送
|
||||||
|
|
||||||
|
3. **验证推送结果**
|
||||||
|
```bash
|
||||||
|
curl "http://192.168.31.210:8848/nacos/v1/cs/configs?dataId=rui-service-xxx.yaml&group=DEFAULT_GROUP&tenant=rui-dev&username=nacos&password=nacos"
|
||||||
|
```
|
||||||
|
|
||||||
|
4. **同步到本地 application.yml(如需要)**
|
||||||
|
- 仅当本地 application.yml 需要兜底内容时更新
|
||||||
|
- 内容必须与 Nacos 保持一致
|
||||||
|
|
||||||
|
### 新建模块的配置初始化流程
|
||||||
|
|
||||||
|
1. **复制 application.yml 模板**
|
||||||
|
```bash
|
||||||
|
cp docs/backend/config-templates/application-template.yml \
|
||||||
|
rui-service/rui-service-xxx/src/main/resources/application.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **修改允许修改的位置**
|
||||||
|
- `server.port` — 按端口规划填写
|
||||||
|
- 无 MyBatis 的模块删除 `rui-data` 导入
|
||||||
|
|
||||||
|
3. **创建 Nacos 配置文件**
|
||||||
|
```bash
|
||||||
|
vim docs/backend/config-templates/nacos/rui-service-xxx.yaml
|
||||||
|
```
|
||||||
|
- 只写 `server.port` + 业务配置
|
||||||
|
|
||||||
|
4. **推送 Nacos 并验证**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 检查清单
|
||||||
|
|
||||||
|
### 编辑前检查
|
||||||
|
|
||||||
|
- [ ] 本次修改是否涉及 `application.yml` 或 Nacos 配置?
|
||||||
|
- [ ] 是否在允许修改的范围内?
|
||||||
|
- [ ] 是否将业务配置放在了正确的位置?
|
||||||
|
|
||||||
|
### 编辑后检查
|
||||||
|
|
||||||
|
- [ ] `application.yml` 是否仍与模板一致?
|
||||||
|
- [ ] Nacos 配置是否未包含 application.yml 中已有的通用配置?
|
||||||
|
- [ ] 修改是否已同步到 Nacos 源文件和本地 application.yml(如适用)?
|
||||||
|
- [ ] 是否已按 Rule 4 推送后验证?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> **最后提醒**:配置规范是为了保证 Nacos/本地配置的一致性和可维护性,请务必遵守!
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: XXXX # 模块端口(按规划分配)
|
port: XXXX # 【允许修改】模块端口(按规划分配)
|
||||||
shutdown: graceful # 优雅关闭
|
shutdown: graceful # 优雅关闭
|
||||||
|
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ spring:
|
|||||||
import:
|
import:
|
||||||
- optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension:yaml}
|
- optional:nacos:${spring.application.name}.${spring.cloud.nacos.config.file-extension:yaml}
|
||||||
- optional:nacos:rui-common.${spring.cloud.nacos.config.file-extension:yaml}
|
- optional:nacos:rui-common.${spring.cloud.nacos.config.file-extension:yaml}
|
||||||
# 无 MyBatis 的模块(gateway)请删除下面这行
|
# 【允许修改】无 MyBatis 的模块(gateway)请删除下面这行
|
||||||
- optional:nacos:rui-data.${spring.cloud.nacos.config.file-extension:yaml}
|
- optional:nacos:rui-data.${spring.cloud.nacos.config.file-extension:yaml}
|
||||||
|
|
||||||
management:
|
management:
|
||||||
|
|||||||
@@ -33,11 +33,7 @@ security:
|
|||||||
- /notify/**
|
- /notify/**
|
||||||
- /actuator/**
|
- /actuator/**
|
||||||
|
|
||||||
# MyBatis Plus 全局配置
|
|
||||||
mybatis-plus:
|
|
||||||
configuration:
|
|
||||||
map-underscore-to-camel-case: true
|
|
||||||
cache-enabled: true
|
|
||||||
|
|
||||||
# Feign 服务提供者配置(默认走聚合启动器,独立模式请在各服务配置中覆盖)
|
# Feign 服务提供者配置(默认走聚合启动器,独立模式请在各服务配置中覆盖)
|
||||||
feign:
|
feign:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ spring:
|
|||||||
min-idle: 5
|
min-idle: 5
|
||||||
max-active: 20
|
max-active: 20
|
||||||
max-wait: 60000
|
max-wait: 60000
|
||||||
|
# MyBatis Plus 全局配置
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
global-config:
|
global-config:
|
||||||
db-config:
|
db-config:
|
||||||
@@ -25,6 +25,7 @@ mybatis-plus:
|
|||||||
logic-not-delete-value: 0
|
logic-not-delete-value: 0
|
||||||
configuration:
|
configuration:
|
||||||
map-underscore-to-camel-case: true
|
map-underscore-to-camel-case: true
|
||||||
|
cache-enabled: true
|
||||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
mapper-locations: classpath*:/mapper/**/*.xml
|
mapper-locations: classpath*:/mapper/**/*.xml
|
||||||
tenant:
|
tenant:
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-cache.yaml — 缓存服务配置
|
|
||||||
# Data ID: rui-service-cache.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:Redis缓存封装、分布式锁
|
|
||||||
|
|
||||||
# 服务端口:9309(缓存服务)
|
|
||||||
server:
|
|
||||||
port: 9309
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-file.yaml — 文件存储服务配置
|
|
||||||
# Data ID: rui-service-file.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:文件上传、下载、OOS存储、本地存储
|
|
||||||
|
|
||||||
# 服务端口:9305(文件服务)
|
|
||||||
server:
|
|
||||||
port: 9305
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-log.yaml — 日志服务配置
|
|
||||||
# Data ID: rui-service-log.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:日志收集、日志分析、ELK集成
|
|
||||||
|
|
||||||
# 服务端口:9310(日志服务)
|
|
||||||
server:
|
|
||||||
port: 9310
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-monitor.yaml — 监控告警服务配置
|
|
||||||
# Data ID: rui-service-monitor.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:系统监控、性能指标、告警通知
|
|
||||||
|
|
||||||
# 服务端口:9311(监控服务)
|
|
||||||
server:
|
|
||||||
port: 9311
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-msg.yaml — 消息通知服务配置
|
|
||||||
# Data ID: rui-service-msg.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:SMS短信、邮件、站内信、App推送
|
|
||||||
|
|
||||||
# 服务端口:9304(消息服务)
|
|
||||||
server:
|
|
||||||
port: 9304
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# rui-service-order.yaml — 订单服务配置
|
|
||||||
# Data ID: rui-service-order.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
|
|
||||||
# 服务端口:9306(订单服务)
|
|
||||||
server:
|
|
||||||
port: 9306
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
# rui-service-pay.yaml — 支付服务配置
|
|
||||||
# Data ID: rui-service-pay.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:支付通道、支付回调、对账
|
|
||||||
|
|
||||||
# 服务端口:9307(支付服务)
|
|
||||||
server:
|
|
||||||
port: 9307
|
|
||||||
|
|
||||||
# 支付模块配置
|
|
||||||
payment:
|
|
||||||
# 订单超时时间(分钟)
|
|
||||||
order-timeout: 30
|
|
||||||
# 分账延迟时间(天)
|
|
||||||
split-delay-days: 7
|
|
||||||
# 佣金结算周期
|
|
||||||
commission-settle-cycle: T+1
|
|
||||||
# 通知重试次数
|
|
||||||
notify-max-times: 5
|
|
||||||
# 通知间隔(秒)
|
|
||||||
notify-intervals: 15,30,60,300,900
|
|
||||||
|
|
||||||
# 渠道配置(示例)
|
|
||||||
payment:
|
|
||||||
channels:
|
|
||||||
alipay:
|
|
||||||
enabled: true
|
|
||||||
sandbox: true
|
|
||||||
app-id: ${ALIPAY_APP_ID:}
|
|
||||||
private-key: ${ALIPAY_PRIVATE_KEY:}
|
|
||||||
public-key: ${ALIPAY_PUBLIC_KEY:}
|
|
||||||
notify-url: http://localhost:9307/payment/notify/alipay
|
|
||||||
wechat_pay:
|
|
||||||
enabled: true
|
|
||||||
sandbox: true
|
|
||||||
app-id: ${WXPAY_APP_ID:}
|
|
||||||
mch-id: ${WXPAY_MCH_ID:}
|
|
||||||
api-v3-key: ${WXPAY_API_V3_KEY:}
|
|
||||||
notify-url: http://localhost:9307/payment/notify/wechat_pay
|
|
||||||
|
|
||||||
# 安全白名单
|
|
||||||
security:
|
|
||||||
oauth2:
|
|
||||||
ignore-urls:
|
|
||||||
- /payment/entry/**
|
|
||||||
- /payment/notify/**
|
|
||||||
|
|
||||||
# Swagger 文档
|
|
||||||
springdoc:
|
|
||||||
swagger-ui:
|
|
||||||
enabled: true
|
|
||||||
path: /swagger-ui.html
|
|
||||||
api-docs:
|
|
||||||
enabled: true
|
|
||||||
path: /v3/api-docs
|
|
||||||
|
|
||||||
knife4j:
|
|
||||||
enable: true
|
|
||||||
setting:
|
|
||||||
language: zh_cn
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# rui-service-search.yaml — 搜索服务配置
|
|
||||||
# Data ID: rui-service-search.yaml
|
|
||||||
# Group: DEFAULT_GROUP
|
|
||||||
# 功能:Elasticsearch封装、全文检索
|
|
||||||
|
|
||||||
# 服务端口:9308(搜索服务)
|
|
||||||
server:
|
|
||||||
port: 9308
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# ============================================================================
|
||||||
|
# rui-service-starter.yaml — 聚合启动器配置
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
# 服务端口:9399(聚合启动器)
|
||||||
|
server:
|
||||||
|
port: 9399
|
||||||
|
|
||||||
|
# 模块管理配置(供租户管理模块配置弹窗使用)
|
||||||
|
rui:
|
||||||
|
modules:
|
||||||
|
# 全局可用模块列表(系统层面定义有哪些模块可选)
|
||||||
|
available:
|
||||||
|
- code: system
|
||||||
|
name: 系统管理
|
||||||
|
icon: tabler:settings
|
||||||
|
- code: user
|
||||||
|
name: 用户管理
|
||||||
|
icon: tabler:users
|
||||||
|
- code: order
|
||||||
|
name: 订单管理
|
||||||
|
icon: tabler:shopping-cart
|
||||||
|
- code: cms
|
||||||
|
name: 内容管理
|
||||||
|
icon: tabler:edit
|
||||||
|
- code: marketing
|
||||||
|
name: 营销中心
|
||||||
|
icon: tabler:present
|
||||||
|
- code: demo
|
||||||
|
name: 演示中心
|
||||||
|
icon: tabler:device-desktop
|
||||||
|
# 默认启用模块(新租户默认开启,逗号分隔)
|
||||||
|
default-enabled: system,user,demo
|
||||||
Reference in New Issue
Block a user