# 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)