淘宝网的网站设计特色怎么做淘宝客优惠劵网站
项目目录
目录接口参考 项目目录结构设计,增加部分领域模型后缀强制定义,方便统一编码风格。
controller:请求处理 @RestController
 module:按大业务区分,对多个业务对象数据聚合处理  @Component
 manager:按业务对象区分,对同一业务对象的数据聚合处理 @Component
 service:按业务对象区分,主要负责数据获取
  impl:主要负责数据获取的接口的具体实现 @Service
 dao:主要负责数据访问层
 xxxDao:固定后缀 Dao @Repository
 config:配置类集合目录
dto:数据传输协议,用于 module、manager、service之间的数据传输
xxxDTO:固定后缀 DTO
model:持久层数据协议映射
xxxBean:固定后缀 Bean
query:前端请求接收DTO,用于接收及校验参数
xxxQuery:固定后缀 Query
 vo:返回前端数据封装视图DTO
xxxVO:固定后缀 VO
 component:流程扩展处理模块,如redis操作,aop,过滤器等
 utils: 主要负责一些通用工具类的集合目录
resources
 mapper
 xxxMapper.xml  Mybatis 复杂sql实现,简单sql可用mybatis plus 接口实现
TODO: 项目脚手架
response-starter
1、统一返回封装
{
 “statusCode”: 0,
 “statusMsg”: “success”,
 “data” : null
 }
 2、自定义异常  BaseException
3、自定义响应码枚举及接口 ResponseEnum DefaultResponseEnum
3、ControllerAdvice 全局异常 处理
/**
- 自定义异常
 - @param ex 自定义异常 {@link BaseException}
 - @return 返回 200
*/
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler(BaseException.class)
public BaseResponseVO handleBusException(BaseException ex) {
return new BaseResponseVO<>(ex.getCode(), ex.getMsg(), ex.getData());
} 
/**
- 参数校验失败
 - @param e {@link MethodArgumentNotValidException}
 - @return 返回 400
*/
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(MethodArgumentNotValidException.class)
public BaseResponseVO methodArgumentNotValidException(MethodArgumentNotValidException e) {
ObjectError objectError = e.getBindingResult().getAllErrors().get(0);
return new BaseResponseVO<>(DefaultResponseEnum.VALIDATE_FAILED, objectError.getDefaultMessage());
} 
/**
- 未定义异常
 - @param e 异常
 - @return 返回 500
*/
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public BaseResponseVO handleException(Exception e) {
return new BaseResponseVO<>(DefaultResponseEnum.FAIL, e.getMessage());
} 
4、ExceptionControllerAdvice 和 ResponseControllerAdvice 默认关闭,开启方式 application.yml 配置
zixun:
 response:
 advice-exception-enabled: true
 advice-response-body-enabled: true
5、返回对象属性默认为 statusCode 和 statusMsg, 修改方式 application.yml 配置
zixun:
 response:
 status-code: status_code
 status-msg: status_msg
