1.工程启动最简步骤

  1. 启动PigxNacosApplication
  2. 启动PigxGatewayApplication
  3. 启动PigxAdminApplication
  4. 启动所需业务微服务
  5. 修改本地host
    1. 127.0.0.1 pigx-register
    2. 127.0.0.1 pigx-gateway
    3. 127.0.0.1 pigx-redis
    4. 127.0.0.1 pigx-xxl
    5. 127.0.0.1 pigx-mysql
    6. 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 配置

  • AsyncConfig 线程池配置参数

    2.constant 常量

  • StatusEnum 目前项目使用枚举,码表上线后统一修改为码表即可

    3.controller 对外暴露的接口

    参考关系建模接口图.jpg

    4.dto 数据传输对象

  • UserInfoNow 用户信息中转(待用户中心完成后按需修改)

    5.engine 建模引擎

  • RelDataModelEngine 关系建模

    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.业务逻辑

    发布/下线流程

    image.png

    4.可能存在疑问的一些点

a.controller中的注解

  1. //在类或方法上使用@Inner注解,使得url无需鉴权。
  2. @Inner(value = false)
  3. //允许跨域请求
  4. @CrossOrigin
  5. public class DataStdController {
  6. }

b.异常处理方式:

通过GlobalBizExceptionHandler(全局业务异常处理类)拦截CustomException(自定义异常类)以及Exception。
抛业务异常建议使用此方式:throw new CustomException("xxxxx");
以handleCustomException为例:

  1. @ExceptionHandler(CustomException.class)
  2. @ResponseStatus(HttpStatus.OK)
  3. public R handleCustomException(CustomException e){
  4. log.error("自定义异常信息 ex={}",e.getMessage(),e);
  5. Tracer.trace(e);
  6. return R.failed(e.getLocalizedMessage());
  7. }

代码中抛出的CustomException会被@ExceptionHandler(CustomException.class)捕获。
@ResponseStatus(HttpStatus.OK)表示返回200状态码。

4.物理关系表未来需要完善的

  1. 授权
  2. 审批及用户信息接口
  3. 状态(使用码表)