lamp-boot的前身是zuihou-admin-boot,从3.0.0版本开始,改名为lamp-boot,它是lamp项目的其中一员。
lamp-boot基于SpringBoot的前后分离的快速开发平台,其中的可配置的SaaS功能尤其闪耀,具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发,支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
核心技术采用SpringBoot、Mybatis、Redis、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。希望能努力打造一套从JavaWeb基础框架-单体架构-持续集成-系统监测的解决方案。本项目旨在实现基础能力,不涉及具体业务。
在一个夜黑风高的晚上,小孩吵着要出去玩,于是和程序员老婆一起带小孩出去放风,路上顺便讨论起项目要换个什么名字,在各自想出的名字都被对方一一否决后,大家陷入了沉思。
走着走着,在一盏路灯下,孩砸盯着路灯打破宁静,喊出:灯灯~我和媳妇愣了一下,然后对视着一起说:哈哈,这个名字好~
灯灯:是我小孩学说话时会说的第一个词,也是我在想了很多项目名后,小孩一语点破的一个名字,灯灯象征着光明,给困境的我们带来希望,给加班夜归的程序员们指引前方~
灯灯(简称灯,英文名:lamp),他是一个项目的统称,包含以下几个子项目
本项目可以通过配置,轻松切换项目的租户模式
1.服务鉴权:
通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。
2.数据权限
利用基于Mybatis的DataScopeInnerInterceptor拦截器实现了数据权限功能
3.SaaS(多租户)的无感解决方案
本项目支持3种常见的租户解决方案和无租户方案,同一套代码,修改一个配置即可实现租户模式只有切换。
4.缓存抽象
采用CacheOps操作缓存,内置2种实现:Caffeine、Redis,可以让项目应急时在无Redis环境正常运行
5.优雅的Bean转换
采用Dozer、BeanUtil等组件来对DTO、DO、PO等对象的优化转换
6.前后端统一表单验证
严谨的表单验证通常需要前端+后端同时验证,但传统的项目,均只能前后端各做一次检验,后期规则变更,又得前后端同时修改。故在`hibernate-validator`的基础上封装了`lamp-validator-starter`起步依赖,提供一个通用接口,可以获取需要校验表单的规则,然后前端使用后端返回的规则,以后若规则改变,只需要后端修改即可。
由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的`knife4j`,并制作了stater,方便springboot用户使用。
10.代码生成器
基于Mybatis-plus-generator自定义了一套代码生成器,通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。
11.定时任务调度器:
12.大文件/断点/分片续传
13.分布式事务
集成了阿里的分布式事务中间件:seata,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题。
14.跨表、跨库、跨服务的关联数据自动注入器
用于解决跨表、跨库、跨服务分页数据的属性或单个对象的属性回显关联数据之痛,支持对静态数据属性(数据字典)、动态主键数据进行自动注入。
15.灰度发布为了解决频繁的服务更新上线,版本回退,快速迭代,公司内部协同开发,本项目采用修改ribbon的负载均衡策略来实现来灰度发布。
lamp-boot3.2.1已经发布,前后分离快速开发平台此版本更新内容包括:feat:增强mybatisplus的行级(column)租户插件(TenantLineInnerInterceptor)支持where条件后拼接多个租户idfeat(log):优化logback配置文件,并让开发环境和其他环境更好的使用不同的日志配置(新增defaults-async.xml、defaults-sync.xml)feat(authority):岗位管理导入参数验证feat:前端lamp-web-plus项目完成数据源管理、租户管理、全局用户...
lamp-boot3.1.0已经发布,这是一个前后分离快速开发平台。此版本更新内容包括:feat:支持动态配置验证码类型和属性,并支持热更新fix:自定义数据权限时,不在查询子组织feat:新增xxFileView的Dockerfile和启动脚本feat:新增通过feign远程调用时,无需校验URI权限#70feat:json格式提交RemoteData字段增加两种传参格式(sex:xxx和sex:{key:xxx})#70新增基于vue-admin-beautiful二次开发的全新前端项目...
3.0.2版本更新详情:1、Controller返回值增加全局返回对象包装配置类(AbstractGlobalResponseBodyAdvice)2、DATASOURCE模式新增lamp-tenant-datasource-init模块用于处理租户模式启动和运行时打加载数据源(原lamp-tenant-datasource模块只由tenant服务依赖,lamp-tenant-datasource-init由其他服务依赖))3、新增lamp-common-api模块,存放公共API(如定时任务调度接口)4、修复修改用户密码的bug#fixI2ATCU5、新增基...
3.0.0版本更新详情:项目结构调整项目名改动:原开源项目现开源项目原会员项目现会员项目备注zuihou-admin-bootlamp-bootzuihou-boot-pluslamp-boot-plus单体版zuihou-commonslamp-utilzuihou-commons-pluslamp-util-plus业务无关的工具集zuihou-generatorlamp-generatorzuihou-generator-pluslamp-generator-plus代码生成器zuihou-uilamp-webzuihou-uilamp-web-plus租户管理后台zuihou-admin-uila...