Skip to content

mikove3y/compass-spring-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMPASS架构

[详述]

更新记录:

版本 时间 变更描述 作者 评审人
V1.0 20190408 新建 wanmk

1前言

注: compass架构依赖于spring-boot进行构建,提供web、data等各种即插即用的模块,本文档将对各个模块进行讲解.

目录

前言
架构
依赖
模块
Base模块
Util模块
AutoConfig模块
Web模块
Data模块
Drools模块
Cache模块
Activiti模块
LCN模块
Swagger模块

2架构

架构模块列表

模块 描述
base 基础模块包含枚举、vo、entity、常量等
util 工具模块包含基本的工具类,如时间等
autoconfig 自动化配置模块包含jwt、constant等
web Web模块包含日志切面、全局上线文、logback全局日志等
camel Esb模块包含服务编排等
data 持久化模块包含mybatis和jpa封装
drools 规则引擎模块
cache 缓存模块包含redis以及caffeine二级缓存
activiti 工作流引擎模块包含工作流和规则引擎
lcn 分布式事务模块
swagger 在线api文档模块

3依赖

分组 坐标 版本 描述
org.springframework.boot spring-boot-dependencies 1.5.15.RELEASE Spring-boot基础依赖
org.springframework.cloud spring-cloud-dependencies Edgware.SR4 Spring-cloud基础依赖
org.apache.camel camel-spring-boot-dependencies 2.21.1 Camel依赖
javax.persistence javax.persistence-api 2.2 Javax持久化依赖
org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 Mybatis依赖
com.github.pagehelper pagehelper-spring-boot-starter 1.2.5 Mybatis分页插件依赖
com.baomidou mybatis-plus-boot-starter 2.3 Mybatis增加依赖
io.shardingsphere sharding-jdbc-orchestration-spring-boot-starter 3.1.0.M1 数据自理依赖
io.shardingsphere sharding-jdbc-spring-boot-starter 3.1.0.M1 分库分表依赖
com.codingapi transaction-springcloud 4.1.0 分布式事务依赖
com.codingapi tx-plugins-db 4.1.0 分布式事务依赖
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.9.5 Jackson依赖
org.apache.commons commons-lang3 3.7 Apache工具集依赖
commons-beanutils commons-beanutils 1.9.3 Apache bean工具依赖
commons-fileupload commons-fileupload 1.3.3 Apache文件上传依赖
com.esotericsoftware kryo-shaded 4.0.2 Kryo序列化依赖
de.javakaffee kryo-serializers 0.45 Kryo序列化依赖
com.belerweb pinyin4j 2.5.0 拼音工具依赖
io.jsonwebtoken jjwt 0.9.0 Jwt-token依赖
org.apache.shiro shiro-spring 1.4.0 Shiro鉴权依赖
joda-time joda-time 2.9.9 日期工具依赖
com.alibaba druid-spring-boot-starter 1.1.10 数据库连接池依赖
io.springfox springfox-swagger2 2.9.2 Swagger依赖
com.github.xiaoymin swagger-bootstrap-ui 1.9.0 Swagger-ui增加依赖
com.google.zxing core 3.3.3 Zxing码依赖
javax.ws.rs javax.ws.rs-api 2.1 参数校验依赖
com.google.guava guava 27.0.1-jre
net.sourceforge.nekohtml nekohtml 1.9.22 Webjars依赖
net.logstash.logback logstash-logback-encoder 5.3 Logstash-logback依赖
org.kie kie-spring 7.6.0.Final Drools依赖
org.activiti activiti-spring 5.22.0 Activiti依赖
org.activiti activiti-modeler 5.22.0
org.activiti activiti-diagram-rest 5.22.0
com.fasterxml.uuid java-uuid-generator 3.1.5 Uuid生成工具依赖

4模块

4.1Base模块

注:Base模块提供基础的实体、vo、枚举、常量、注解、异常封装类,作为所有模块的基础支持。

注解:

类名 功能描述
ApiModel Api在线文档模型注解
ApiModelProperty Api在线文档模型属性注解
LogicDelete 逻辑删除注解

常量&枚举:

注:基类业务枚举code为int型,基类业务枚举2code为string型

类名 功能描述
BaseBizeStatusEnum 基类业务枚举【是否、文件类型】
BaseBizStatusEnumDeserializer 基类业务枚举json反序列化
BaseBizStatusEnumDeserializer2 基类业务枚举2json反序列化
BaseBizStatusEnumSerializer 基类业务枚举json序列化
BaseBizStatusEnumSerializer2 基类业务枚举2json序列化
BaseConstant 基类常量【相应码、请求头参】
IBaseBizStatusEnum 基类业务枚举接口
IBaseBizStatusEnum2 基类业务枚举2接口

实体:

类名 功能描述
BaseAttachmentEntity 基类附件实体
BaseEntity 基类实体
BaseLevelTreeEntity 基类树形实体

异常:

类名 功能描述
BaseException 基类运行时异常-统一异常

工具:

类名 功能描述
LevelTreeUtil 层级树工具类-格式化输出树形结构数据
RegUtil 正则工具类-匹配文件类型

VO:

类名 功能描述
AppPage APP分页响应vo
BaseDataX 基类请求数据转换类
BaseErroVo 基类错误信息vo
BaseLevelTreeResponseVo 基类层级树响应vo
BaseLogVo 基类日志vo
BaseRequestAppPageVo 基类APP分页请求vo
BaseRequestPcPageVo 基类PC分页请求vo
BaseResponseVo 基类响应vo
BaseSubject 基类用户信息vo
BaseVueTreeVo 基类vue树响应vo
PcPage PC分页响应vo

4.2Util模块

注:Util模块提供一些通用的工具,如:动画、加密、数据复制、日期、编解码、地图转换、异常、json、随机数、序列化、guid、url、条码等。

Uil:

类名 功能描述
AnimatedGifUtil GIF动画工具类
ASEUtil ASE加密工具类
Base32 Base32编解码工具类
Base64 Base64编解码工具类
Blowfish Blowfish加密算法工具类
CharsetUtil 字符编码工具类
DataXUtil 数据交换工具类
DESUtil DES加密工具类
EarthMapUtil 地图经纬度工具类
ExceptionUtil 异常输出工具类
JacksonUtil Json工具类
Md5Util MD5加密工具类
RadomUtil 随机工具类
SerializeUtil 序列化工具类
SnowflakeIdWorker Twitter_Snowflake算法工具类-生成guid
UrlUtil URL工具类
ZxingUtil 条码工具类

4.3AutoConfig模块

注:AutoConfig模块提供一些常用的自动化配置,如:jwt、常量、异构系统、异步任务、jpa扩展、定时任务、yml等

自动化配置:

类名 功能描述
ArchModuleAutoConfiguration 异构系统自动化配置
AsyncTaskAutoConfiguration 异步任务自动化配置
ConstantAutoConfiguration 常量自动化配置
JpaExtProperties JPA扩展
JwtAutoConfiguration JWT自动化配置
SchedulingTaskAutoConfiguration 定时任务自动化配置
YamlPropertySourceFactory Yml自定义工厂

4.4Web模块

注:Web模块提供web相关的功能,如:日志切面、api版本管理、全局上下文、feign+robbin远程调用、统一异常处理、logback统一追溯ID、request请求封装

Web:

类名 功能描述
BaseMvcConfig MVC配置
BaseController 基类controller类
UniversalEnumConverterFactory 全局IbaseBizStatusEnum转换工厂

日志切面:

类名 功能描述
BaseApiAspect 异构系统自动化配置

Api版本管理:

类名 功能描述
ApiVersionRequestHandlerMapping Api版本管理请求处理器映射

全局上下文:

类名 功能描述
AppContext Spring全局上下文-bean获取
GlobalContext 自定义全局上下文reques/response/BaseSubject获取

Feign+Robbin远程调用:

类名 功能描述
FeignConfig Feign配置类
RibboConfig Robbin配置类

统一异常处理:

类名 功能描述
BaseExceptionHandler 统一异常封装

Logback统一追溯ID:

类名 功能描述
MessageIdFilter Logback统一追溯ID过滤器

Request请求封装:

类名 功能描述
CustomHttpServletRequestWrapper Request请求包装类

4.5Camel模块

注:Camel模块提供ESB服务编排功能,Camel的功能很强大需要深度挖掘,暂时未在项目上使用。

参考:

配置:

类名 功能描述
CamelConfig Camel配置类

路由:

类名 功能描述
BaseRouter 基类路由

处理器:

类名 功能描述
BaseErrorProcessor 错误处理器
DefaultProcessor 默认处理器

4.6Data模块

注:Data模块提供orm功能,封装了mybatis+jpa,mybatis负责复杂查询,jpa负责建表、单表增删改查等功能。

自动化配置:

类名 功能描述
JpaDbEnumTypeHandler JPA枚举处理器
MybatisDbEnumTypeHandler Mybatis枚举处理器
MySQL5InnoDBDialectWithoutFK JPA-Mysql方言去除外键封装
Oracle10gDialectWithoutFK JPA-Oracle方言去除外键封装
PostgreSQL9DialectWithoutFK JPA-PostgreSql方言去除外键封装
BaseEntityRepository JPA 基类实例仓库接口
BaseEntityRepositoryFactoryBean JPA 基类实例仓库工厂
BaseEntityRepositoryImpl JPA 基类实例仓库接口实现类
BaseEntityServiceImpl 基类实例服务接口实现类
IBaseEntityService 基类实例服务接口
PageTransformUtil 分页查询数据转换工具

4.7Drools模块

注:Drools模块提供规则引擎服务。暂时未有业务模块使用该模块。

配置:

类名 功能描述
DroolsConfig 规则引擎配置类

4.8Cache模块

注:Cache模块提供缓存服务,封装了redis和caffeine一二级缓存。

参考:

配置:

类名 功能描述
RedisConfig 缓存配置类

Cache管理器:

类名 功能描述
LayeringCache 缓存包装类
LayeringCacheManager 缓存管理器
FirstCacheSetting 一级缓存设置
SecondaryCacheSetting 二级缓存设置

Cache监听:

类名 功能描述
RedisMessageListener Redis缓存消息监听器
RedisPublisher Redis缓存消息发布器

工具:

类名 功能描述
RedisUtil Redis工具类

4.9Activiti模块

注:Activiti模块提供流程流程以及规则服务,并升级了activiti 5.22.0版本的drools依赖,自定义stencilset用户活动UserTask增加actioncodepackage配置用于适配流程动作节点。流程模块采用前后端完全分离策略。

配置:

类名 功能描述
ActivitiConfig Activiti配置

Cache管理器:

类名 功能描述
AutoCompleteFirstTaskEventListener 自动跳过第一个任务节点监听器
AutoCompleteCmd 自动完成任务CMD
JumpTaskCmd 自动跳过任务CMD

Cache监听:

类名 功能描述
CustomActivityBehaviorFactory 自定义行为工厂-升级drools
CustomBusinessRuleTaskActivityBehavior 自定义行为-升级drools
RulesAgendaFilter 规则引擎rule分组过滤器
RulesDeployer 规则引擎部署器
RulesHelper 规则引擎帮助类

工具:

类名 功能描述
stencilset.json 自定义流程配置文件
CustomBpmnJsonConverter 自定义json转换器
CustomUserTaskJsonConverter 自定义UserTask json转换器

4.10LCN模块

注:LCN模块提供分布式事务控制支持

参考: https://github.com/codingapi/tx-lcn.git

http://www.txlcn.org/zh-cn/

配置:

类名 功能描述
TxManagerHttpRequestServiceImpl LCN事务TX-Manager请求封装
TxManagerTxUrlServiceImpl LCN事务TX-Manager地址获取封装

4.11Swagger模块

注:Swagger模块参考https://github.com/xiaoymin/Swagger-Bootstrap-UI.git 做了部分优。,

优化项目: bycdao-ui/cdao/swaggerbootstrapui.js

1、去掉拼装url ,灵活支持swagger配置的地址;

SwaggerBootstrapUi.prototype.buildCurl

2、扩展支持自定义host,去掉过滤和截取url;

SwaggerBootstrapUi.prototype.createApiInfoInstance

5优化

注:当前架构存在代码分割不太合理的地方需要重新进行排版,camel模块可以进行深度挖掘进行服务编排由于项目工期问题搁置了;

需要调整代码的模块:

模块 描述
Base 1、Base模块可以拆分Entity到Data模块去 2、请求或者响应对象包含以下IbaseBizStatusEnum基类业务枚举的字段不能为集合类型,不然报错 3、BaseSubject增加扩展字段方便以后扩展,不能包含太多特定业务信息在其中
Data 1、增加ActiveMode功能增强Entity功能 2、JPA逻辑删除功能不完善,未测试
Camel 1、需要深度挖掘Camel潜力做更多的尝试

现有架构依赖于spring-boot 1.5.15发行版,spring-cloud Edgware.SR4版,后续需要升级spring-boot依赖到2.0版本时,Activiti模块需要重构。

About

compass 基础boot架构

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages