本模块提供了配置版本管理功能,包括Entity、Mapper、Service和Controller的完整实现。
storlead-knowledge/
├── storlead-knowledge-core/
│ └── src/main/java/com/storlead/knowledge/
│ ├── entity/
│ │ └── ConfigVersionEntity.java # 实体类
│ └── pojo/
│ ├── dto/
│ │ └── ConfigVersionDTO.java # 数据传输对象
│ └── vo/
│ └── ConfigVersionVO.java # 视图对象
├── storlead-knowledge-biz/
│ └── src/main/java/com/storlead/knowledge/
│ ├── mapper/
│ │ └── ConfigVersionMapper.java # Mapper接口
│ └── service/impl/
│ └── ConfigVersionServiceImpl.java # Service实现类
├── storlead-knowledge-spi/
│ └── src/main/java/com/storlead/knowledge/service/
│ └── ConfigVersionService.java # Service接口
├── storlead-knowledge-api/
│ └── src/main/java/com/storlead/knowledge/api/
│ └── ConfigVersionController.java # Controller控制器
└── sql/
└── config_version.sql # 数据库建表脚本
请执行 sql/config_version.sql 文件中的SQL语句来创建数据库表。
表字段说明:
id: 主键ID(自增)name: 名称app_code: 应用编码key: 键值version: 版本号status: 状态(0-禁用,1-启用)owner_by: 所有者IDcreate_by: 创建人IDupdate_by: 更新人IDcreate_time: 创建时间update_time: 更新时间is_delete: 是否删除(0-未删除,1-已删除)enabled: 是否启用(0-禁用,1-启用)sort: 排序ConfigVersionDTO用于数据传输和验证:
ConfigVersionVO用于视图展示:
ConfigVersionService提供了丰富的业务方法:
getByAppCodeAndKey: 根据应用编码和键值查询最新配置版本pageVO: 分页查询并返回VO对象,支持多条件搜索saveByDTO: 通过DTO保存配置版本updateByDTO: 通过DTO更新配置版本/knowledge/config-version/list - 获取配置版本列表/knowledge/config-version/page - 分页获取配置版本列表(支持按应用编码和关键词搜索)/knowledge/config-version/{id} - 根据ID获取配置版本/knowledge/config-version/by-app-key - 根据应用编码和键值获取配置版本/knowledge/config-version/save - 保存配置版本/knowledge/config-version/update - 更新配置版本/knowledge/config-version/{id} - 删除配置版本分页接口 /knowledge/config-version/page 支持以下参数:
pageIndex: 页码(默认1)pageSize: 每页大小(默认10)appCode: 应用编码(可选)keyword: 关键词(可选,支持名称、键值、版本号模糊搜索)提供了完整的单元测试示例,位于:
storlead-knowledge-biz/src/test/java/com/storlead/knowledge/service/impl/ConfigVersionServiceImplTest.java
运行测试:
mvn test -Dtest=ConfigVersionServiceImplTest
curl -X POST http://localhost:8080/knowledge/config-version/save \
-H "Content-Type: application/json" \
-d '{
"name": "数据库连接配置",
"appCode": "USER_SERVICE",
"key": "db.connection.url",
"version": "1.0.0",
"status": 1
}'
curl -X GET "http://localhost:8080/knowledge/config-version/page?pageIndex=1&pageSize=10&appCode=USER_SERVICE&keyword=database"
curl -X GET "http://localhost:8080/knowledge/config-version/by-app-key?appCode=USER_SERVICE&key=db.connection.url"