107 lines
2.6 KiB
Markdown
107 lines
2.6 KiB
Markdown
|
|
# 项目名称
|
|||
|
|
|
|||
|
|
SPDM基线化版本
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
- JDK 1.8+
|
|||
|
|
- Maven 3.5+
|
|||
|
|
- Spring Boot 2.x
|
|||
|
|
- (其他依赖环境)
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 项目配置
|
|||
|
|
|
|||
|
|
本项目使用多环境配置,请根据您的运行环境选择相应的配置文件:
|
|||
|
|
|
|||
|
|
1. **本地开发环境** - 使用 `application-local.yml`
|
|||
|
|
2. **测试环境** - 使用 `application-dev.yml`
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 项目技术规范(v1.0)
|
|||
|
|
|
|||
|
|
## 一、数据库设计规范
|
|||
|
|
1. **字段命名规范**
|
|||
|
|
- 采用小驼峰命名法(camelCase)
|
|||
|
|
- 示例:`fileName varchar(255) DEFAULT NULL COMMENT '文件名称'`
|
|||
|
|
|
|||
|
|
## 二、Feign接口规范
|
|||
|
|
1. **代码组织**
|
|||
|
|
- 所有Feign接口必须置于`com.sdm.common.feign.inter`模块下
|
|||
|
|
- 按业务模块分包(如:`feign.inter.data`、`feign.inter.system`)
|
|||
|
|
|
|||
|
|
2. **接口定义**
|
|||
|
|
- 接口命名必须以`FeignClient`作为后缀(例:`DataQueryFeignClient`)
|
|||
|
|
- 禁止使用`JSONObject`作为输入/输出参数
|
|||
|
|
|
|||
|
|
3. **参数规范**
|
|||
|
|
- 请求参数:统一置于`common-entity-req`包,按模块分包
|
|||
|
|
- 响应参数:统一置于`common-entity-resp`包,按模块分包
|
|||
|
|
|
|||
|
|
4. **接口实现**
|
|||
|
|
- feign接口在com.sdm.common.feign.impl和各模块controller实现,用于规范接口定义
|
|||
|
|
|
|||
|
|
## 三、外部接口调用规范
|
|||
|
|
1. **代码组织**
|
|||
|
|
- 所有外部调用代码必须置于`com.sdm.common.feign.impl`模块
|
|||
|
|
|
|||
|
|
2. **封装要求**
|
|||
|
|
```java
|
|||
|
|
/**
|
|||
|
|
* 外部接口调用示例
|
|||
|
|
*/
|
|||
|
|
@Slf4j
|
|||
|
|
@Component
|
|||
|
|
public class ExternalApiWrapper {
|
|||
|
|
|
|||
|
|
|
|||
|
|
public Result<ExternalData> getExternalData(RequestParam param) {
|
|||
|
|
try {
|
|||
|
|
// 1. 参数校验
|
|||
|
|
validateParams(param);
|
|||
|
|
|
|||
|
|
// 2. 接口调用
|
|||
|
|
Response response = externalClient.call(param);
|
|||
|
|
|
|||
|
|
// 3. 响应标准化校验
|
|||
|
|
if (!response.isSuccess()) {
|
|||
|
|
throw new BusinessException("ERR_EXTERNAL_API", response.getErrorMsg());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 4. 数据转换
|
|||
|
|
return convertResponse(response);
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
// 5. 异常处理(必须记录完整堆栈)
|
|||
|
|
log.error("[外部接口调用异常] 接口: {}, 参数: {}", "getExternalData", JSON.toJSONString(param), e);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 四、代码质量规范
|
|||
|
|
1. **方法规范**
|
|||
|
|
- 单个方法长度不超过200行
|
|||
|
|
- 遵循单一职责原则进行方法拆分
|
|||
|
|
|
|||
|
|
2. **异常处理**
|
|||
|
|
- 必须捕获并记录完整异常堆栈
|
|||
|
|
- 日志格式:`[业务标记] 描述信息 关键参数={} 异常上下文={}`
|
|||
|
|
|
|||
|
|
3. **文档要求**
|
|||
|
|
- 所有公开方法必须包含Swagger注解
|
|||
|
|
- 复杂逻辑需添加实现注释
|
|||
|
|
```java
|
|||
|
|
/**
|
|||
|
|
* 根据任务ID获取详情
|
|||
|
|
* @param taskId 任务ID(必须大于0)
|
|||
|
|
* @throws BusinessException 当任务不存在时抛出404异常
|
|||
|
|
*/
|
|||
|
|
@ApiOperation(value = "任务详情查询")
|
|||
|
|
@GetMapping("/task/{taskId}")
|
|||
|
|
public Result<TaskVO> getTask(@PathVariable @Min(1) Long taskId) {
|
|||
|
|
// 实现代码...
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
|