# base-components
**Repository Path**: mosmos_admin/base-components
## Basic Information
- **Project Name**: base-components
- **Description**: base components
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-07-04
- **Last Updated**: 2023-07-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# base-components
> 基础依赖模块,此项目的各个模块用于被其它项目直接依赖,
> 并能快速构建一个功能完善的Spring Boot / Cloud 项目。
依赖项目的pom.xml文件中加入:
```
com.drakelee.base
base-components
Finchley-SNAPSHOT
drakelee-base-mvn-repo
drakelee-base-mvn-repo
https://gitee.com/drakelee1221/base-mvn-repo/raw/master/repository/
true
true
always
```
### support
> 提供启动类、常量、枚举、接口和注解等的上下文支持
> 不依赖请其它模块
- 配置文件秘钥加密和解密
- 启动类 SpringBootApplicationRunner 的启动前置检查工作
- 自定义的重启、刷新和关闭端点
- 各模块的通用Service接口和注解类
### common
> 提供各种工具类、统一异常处理、Token拦截器和部分通用Service实现
> 依赖模块:[support](#support)
- 自定义RPC负载均衡(Ribbon)规则
- 日志、Jack返回值格式化
- Token拦截器,序列化由网关层传输过来的token对象
- 统一异常处理、并通过ExceptionId(sleuth)微服务调用链路追踪
- Spring Actuator/Security 通用安全配置
### transaction
> 提供Spring事务上下文拓展和支持
> 不依赖请其它模块
- TransactionManager 事务管理器,提供事务事件回调等功能
### database-jpa
> 对Spring Data JPA的封装和拓展
> 依赖模块:[common](#common)、[transaction](#transaction)
- 提供JPA-Dao接口的default方法实现的工具
- 封装方法丰富的 GenericJpaDao,自定义的Dao接口继承此接口即可
- 封装方法丰富的 AbstractJpaService,自定义的Service类继承此类即可
- SQL拼接工具NativeSQLBuilder
### database-mybatis
> 对 tk.mybatis.mapper 集成,简化mybatis的操作
> 依赖模块:[support](#support)、[transaction](#transaction)
- 自定义的Mapper接口继承tk.mybatis.mapper.common.BaseMapper接口即可
- 封装方法丰富的 AbstractMybatisService,自定义的Service类继承此类即可
### cache
> 对Spring Cache统一封装和配置
> 依赖模块:[common](#common)、[transaction](#transaction)
- 提供Cache缓存接口的Redis(Spring Data Redis)的实现,并开启对Spring事务支持
- 提供CacheLock缓存锁接口的Redis实现
- 提供Redis发布订阅的消息驱动事件的实现和完整封装,支持异步和同步处理
- 提供Token对象缓存管理
- 缓存失效时间,可通过配置文件直接动态配置和修改
- 兼容多种缓存对象序列化和反序列化方式
### elasticsearch
> 对Spring Data Elasticsearch统一封装和配置
> 依赖模块:[common](#common)
- 封装方法丰富的 GenericElasticsearchRepository,自定义的Repository接口继承此接口即可
- 提供多种对数据库数据同步方法
### feign
> 使用Spring Cloud Feign,统一封装微服务调用方式
> 依赖模块:[common](#common)、[transaction](#transaction)
- 支持动态Header传递至下游服务
- 支持线程池隔离策略的异常调用的堆栈信息日志输出
- 针对401、40X等客户端请求异常,增加不触发断路机制的异常封装
- 支持非Java端的微服务调用拓展
- 支持分布式事务(使用[LCN](https://github.com/codingapi/tx-lcn)修改后实现)
### zuul
> 使用Spring Cloud Zuul,封装多种过滤器、统一配置
> 依赖模块:[common](#common)、[cache](#cache)
- 可动态配置的多个过滤器
- 支持 Server-send events
- 自定义 RibbonCommand 策略
### task
> 基于Quartz实现的多节点集群调度作业管理
> 依赖模块:[common](#common)、[feign](#feign)、[database-jpa](#database-jpa)
- 基于数据库实现Restful接口统一管理调度作业信息
- 实现基于数据库锁的排他式调用策略
### doc
> 基于Swagger2封装的接口文档统一编排
> 依赖模块:[support](#support)
- 支持动态对象(无需再写无用的VO、DTO)的参数注解式文档编写
- 基于[Swagger-Bootstrap-UI](https://github.com/xiaoymin/Swagger-Bootstrap-UI)开启网关对各个服务的接口文档UI支持
### code-tool
> 代码生成工具,可根据模板生成:domain、jpa-dao、mybatis-mapper、service、controller
> 依赖模块:[support](#support)