# gen-start **Repository Path**: ASDF_A/gen-start ## Basic Information - **Project Name**: gen-start - **Description**: 根的开始 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-11-28 - **Last Updated**: 2024-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gen-start #### 介绍 根的开始 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 开发规范 + 项目目录规范 - api 接口模块 - svc 服务模块 - web web模块 - pub 公共模块(包含各种工具类) 2. 多数据源(项目默认 方案1.4.3 ) 1.1 处理方案:分包、注解 切换两种 1.2 使用场景:多数据源主从/多数据源多库/多数据源主从+多库 1.3 问题处理:多数据源就脱离不了事务处理,如何处理事务的统一 1.4 实现方案: 1.4.1 分包:创建多个sqlsession ,通过不同包名分配不同的 sqlsessiontemplate 进行数据操作(参考分支 v0.1 ) 1.4.2 注解:注解指定数据源,通过AOP形式进行数据源切换 1.4.3 分包+注解:通过拦截spring的 Service注解,解析包目录进行切换,切换支持spel表达式解析,能执行库操作(参考分支 v0.2) 1.5 问题解决思路 1.5.1 主从场景,使用spring事务即可,建议直接使用 dynamic插件进行使用 1.5.2 分库场景 1.5.2.1 事务:简单处理考虑使用 atomickos 的xa实现方案,进行强事务整合 (v0.1) 1.5.2.2 事务:复杂处理,引入 seata 服务,可使用 AT/TCC/SAGA 方案都可以达到最终一致性,(缺点就是需要引入单独的seata组件) 3. 基础权限设计 [待实现] 2.1 基于 RBAC(Role-Based Access Control)模型的拓展模型RBAC3进行再次拓展,增加实体权限级别控制 4. 接口模块设计 [待实现-黄艳龙] 3.1 满足接口参数的映射、转换、透传、自定义参数添加 3.2 满足对接平台与接口之间的权限控制,包含接口访问限制、流量控制、费用结算等 3.3 网关集成 5. 服务设计 [待实现] 4.1 底层服务采用通用参数Map作为入参,便于后续进行热发布准备 6. 热发布 [待实现] 7. frame功能列表 [待实现] - 基于 easyExcel 进行文件的导入导出功能框架封装 [王明] - 功能启动后,后置处理 基于 Application 8. 接口文档可视化 - springdoc openApi3 (过度方案) 9. 权限认证[待实现0-鼎雯] 10. 公共 + 全局异常拦截 WebGlobalExceptionHandler + 异常模块设计 - 抛异常统一使用 ExceptionUtils 进行抛出 - 异常信息统一格式 BusiExceptionEnum 为国际化做准备 [待拓展] + 分页模块 11. 后台进程调度框架[powerJob集成] 12. cache模块设计 > 在 com.onepiece.gen.frame.cache 包目录下,所有缓存需要实现 ICache 接口,并重写缓存加载、获取、刷新方法 > 统一通过 CacheManager.getCacher获取对应缓存实例,进行缓存获取操作 13. 规则模块设计 > 规则要素 : 平台、场景、业务、操作 > > 校验模式 > + 基于规则要素进行规则集匹配 > + 基于单规则匹配 > > 规则引擎 : 规则集、规则、场景、平台 > > 应用 > + 通过 RuleEngineFactory.getEnginer().fire() 方法统一进行校验,规则初始化统一放在RuleFactory 中,后期统一迁移 > + 所有规则校验类必须实现 IValidator 接口 validate 方法 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)