1.工程启动最简步骤
- 启动PigxNacosApplication
- 启动PigxGatewayApplication
- 启动PigxAdminApplication
- 启动所需业务微服务
- 修改本地host
127.0.0.1 pigx-register
127.0.0.1 pigx-gateway
127.0.0.1 pigx-redis
127.0.0.1 pigx-xxl
127.0.0.1 pigx-mysql
127.0.0.1 pigx-sentinel
注:常用地址
本地nacos地址:http://localhost:8848/nacos/
swagger2地址:http://pigx-gateway:9999/swagger-ui.html
框架使用文档:http://124.93.26.52:63324/web/
2.目录结构
1.config 配置
-
2.constant 常量
StatusEnum 目前项目使用枚举,码表上线后统一修改为码表即可
3.controller 对外暴露的接口
4.dto 数据传输对象
UserInfoNow 用户信息中转(待用户中心完成后按需修改)
5.engine 建模引擎
-
6.entity 实体类
7.exception 自定义异常类
CustomException继承自RuntimeException,可被GlobalBizExceptionHandler捕获
public class CustomException extends RuntimeException
8.handle 处理器
GlobalBizExceptionHandler 全局异常处理器,详细说明请参考4.c异常处理方式
9.mapper
需要编写一些mabtis plus不能生成的复杂sql,如多表关联等
10.service 服务层
—business 业务整合层
—dao 一般性增删改查
—rpc 远程过程调用(一般使用Feign) IBigDataService 底层建模调用
- IResourceService 资源中心调用
11.vo 视图对象
略3.业务逻辑
发布/下线流程
4.可能存在疑问的一些点
a.controller中的注解
//在类或方法上使用@Inner注解,使得url无需鉴权。
@Inner(value = false)
//允许跨域请求
@CrossOrigin
public class DataStdController {
}
b.异常处理方式:
通过GlobalBizExceptionHandler(全局业务异常处理类)拦截CustomException(自定义异常类)以及Exception。
抛业务异常建议使用此方式:throw new CustomException("xxxxx");
。
以handleCustomException为例:
@ExceptionHandler(CustomException.class)
@ResponseStatus(HttpStatus.OK)
public R handleCustomException(CustomException e){
log.error("自定义异常信息 ex={}",e.getMessage(),e);
Tracer.trace(e);
return R.failed(e.getLocalizedMessage());
}
代码中抛出的CustomException
会被@ExceptionHandler(CustomException.class)
捕获。@ResponseStatus(HttpStatus.OK)
表示返回200状态码。
4.物理关系表未来需要完善的
- 授权
- 审批及用户信息接口
- 状态(使用码表)