开源地址:https://gitee.com/log4j/pig
基于Spring Cloud、OAuth2.0、Vue的前后端分离的系统。 通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动态路由、灰度发布、 支持常见登录方式, 多系统SSO登录, 提供配套视频开发教程
功能列表:
完善登录:账号密码模式、短信验证码模式、社交账号模式均整合Spring security oAuth
单点登录:基于Srping security oAuth 提供单点登录接口,方便其他系统对接
用户管理:用户是系统操作者,该功能主要完成系统用户配置。
机构管理:配置系统组织机构,树结构展现,可随意调整上下级。
菜单管理:配置系统菜单,操作权限,按钮权限标识等。
角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
动态路由:基于zuul实现动态路由,后端可配置化。
灰度发布:自定义ribbon路由规则匹配多版本请求。
终端管理:动态配置oauth终端,后端可配置化。
字典管理:对系统中经常使用的一些较为固定的数据进行维护,如:是否等。
操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
服务限流:多种维度的流量控制(服务、IP、用户等)
消息总线:配置动态实时刷新
分库分表:shardingdbc分库分表策略
数据权限: 使用mybatis对原查询做增强,业务代码不用控制,即可实现。
文件系统: 支持FastDFS、七牛云,扩展API几行代码实现上传下载
消息中心:短信、邮件模板发送,几行代码实现发送
聚合文档:基于zuul实现 swagger各个模块的实现
代码生成:前后端代码的生成,支持Vue
缓存管理:基于Cache Cloud 保证Redis 的高可用
服务监控: Spring Boot Admin
分布式任务调度: 基于elastic-job的分布式任务,zookeeper做调度中心
zipkin链路追踪: 数据保存ELK,图形化展示
pinpoint链路追踪: 数据保存hbase,图形化展示
开源地址:https://gitee.com/shuzheng/zheng
基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。
开源地址:https://gitee.com/minull/ace-security
Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,核心技术采用Spring Boot2以及Spring Cloud Gateway相关核心组件,前端采用vue-element-admin组件。具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。
架构摘要
服务鉴权
通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。
监控
利用Spring Boot Admin 来监控各个独立Service的运行状态;利用Hystrix Dashboard来实时查看接口的运行状态和调用频率等。
负载均衡
将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。
服务注册与调用
基于Consul来实现的服务注册与调用,在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。
熔断机制
因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix的作为熔断器,避免了服务之间的“雪崩”。
开源地址:https://gitee.com/smallc/SpringBlade
SpringBlade 2.0 是一个基于 Spring Boot 2 & Spring Cloud Finchley & Mybatis 等核心技术,用于快速构建中大型系统的基础框架。
主要特性&&变化
采用前后端分离的模式,前端单独开源出一个框架:Sword,主要选型技术为React、Ant Design、Umi、Dva
后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架:Blade-Tool
Blade-Tool已推送至Maven中央库,直接引入即可,减少了工程的臃肿,也可更注重于业务开发
注册中心选型Consul
部署使用Docker或K8s + Jenkins
使用Traefik进行反向代理
踩了踩Kong的坑,有个基本的使用方案,但不深入,因为涉及到OpenResty。
封装了简单的Secure模块,采用JWT做Token认证,可拓展集成Redis等细颗粒度控制方案
在2.0诞生之前,已经稳定生产了近一年,经历了从Camden -> Finchley的技术架构,也经历了从fat jar -> docker -> k8s + jenkins的部署架构
项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。
开源地址:https://gitee.com/stylefeng/guns
Guns基于Spring Boot 2,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl,Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架!同时提供spring cloud版本!
Guns微服务版本
Guns的核心是roses-kernel项目https://gitee.com/stylefeng-Roses/roses-kernel,提供对spring cloud的支持。
Roses框架基于Spring Boot 2和Spring Cloud Finchley.RELEASE,整合Eureka + Hystrix + Ribbon + Feign + Zuul,更符合企业级的分布式和服务化解决方案,Roses拥有高效率的开发体验,提供可靠消息最终一致性分布式事务解决方案,提供基于调用链的服务治理,提供可靠的服务异常定位方案(Log + Trace)等等,一个分布式框架不仅需要构建高效稳定的底层开发框架,更需要解决分布式带来的种种挑战!
管理系统功能
1.用户管理 2.角色管理 3.部门管理 4.菜单管理 5.字典管理 6.业务日志 7.登录日志 8.监控管理 9.通知管理 10.代码生成(旗舰版目前还没完成)
项目特点
基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。
完善的日志记录体系,可记录登录日志,业务操作日志(可记录操作前和操作后的数据),异常日志到数据库,通过@BussinessLog注解和LogObjectHolder.me().set()方法,业务操作日志可具体记录哪个用户,执行了哪些业务,修改了哪些数据,并且日志记录为异步执行,详情请见@BussinessLog注解和LogObjectHolder,LogManager,LogAop类。
利用beetl模板引擎对前台页面进行封装和拆分,使臃肿的html代码变得简洁,更加易维护。
对常用js插件进行二次封装,使js代码变得简洁,更加易维护,具体请见webapp/static/js/common文件夹内js代码。
利用ehcache框架对经常调用的查询进行缓存,提升运行速度,具体请见ConstantFactory类中@Cacheable标记的方法。
controller层采用map + warpper方式的返回结果,返回给前端更为灵活的数据,具体参见com.stylefeng.guns.modular.system.warpper包中具体类。
防止XSS攻击,通过XssFilter类对所有的输入的非法字符串进行过滤以及替换。
简单可用的代码生成体系,通过SimpleTemplateEngine可生成带有主页跳转和增删改查的通用控制器、html页面以及相关的js,还可以生成Service和Dao,并且这些生成项都为可选的,通过ContextConfig下的一些列xxxSwitch开关,可灵活控制生成模板代码,让您把时间放在真正的业务上。
控制器层统一的异常拦截机制,利用@ControllerAdvice统一对异常拦截,具体见com.stylefeng.guns.core.aop.GlobalExceptionHandler类。
页面统一的js key-value单例模式写法,每个页面生成一个唯一的全局变量,提高js的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码。
业务日志记录
日志记录采用aop(LogAop类)方式对所有包含@BussinessLog注解的方法进行aop切入,会记录下当前用户执行了哪些操作(即@BussinessLog value属性的内容),如果涉及到数据修改,会取当前http请求的所有requestParameters与LogObjectHolder类中缓存的Object对象的所有字段作比较(所以在编辑之前的获取详情接口中需要缓存被修改对象之前的字段信息),日志内容会异步存入数据库中(通过ScheduledThreadPoolExecutor类)。
推荐指数 :⭐⭐⭐⭐⭐
我在上大学的时候就了解和接触过了这个项目,当时我还是一个 Spring 入门不太久的小菜鸟。一晃,不经意间已经过去快 3 年了。
采用主流框架 :基于 Spring Boot2.0+版本开发,并且支持 Spring Cloud Alibaba 微服务。
功能齐全 :包含系统管理,代码生成,多数据库适配,SSO 单点登录,工作流,短信,邮件发送,OAuth2 登录,任务调度,持续集成,docker 部署等功能;
提供了企业版 :企业版功能更多,并且提供了完善的开发文档,开发 demo,快速入门。
相关地址:
项目地址 :https://gitee.com/stylefeng/guns
项目官网 :https://www.stylefeng.cn/
另外,这个项目还提供了视频教你如何使用,地址:https://www.bilibili.com/video/av56718207 。
项目技术主流,唯一缺点是企业版和微服务版需要单独购买。
社区活跃。
项目功能完善,满足企业绝大部分场景开发需求,并且额外提供了持续集成,docker 部署等功能。
......
适合企业后台管理网站的快速开发场景,不论是对于单体和微服务都有支持。
推荐指数 :⭐⭐⭐⭐
项目名字是作者还未出生的女儿,看到之后很感动!
RuoYi 一款基于基于 SpringBoot 的权限管理系统 易读易懂、界面简洁美观,直接运行即可用 。
作者是这样介绍这个项目的:
“一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的 Web 应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。
性别男,若依是给还没有出生女儿取的名字(寓意:你若不离不弃,我必生死相依)
相关网站 :
项目地址 :https://gitee.com/y_project/RuoYi
文档地址 :http://doc.ruoyi.vip/
官网地址:http://ruoyi.vip/
提供了多种版本:单体、前后端分离、微服务(即将开源)
提供的功能齐全,覆盖大部分场景需求
提供的文档丰富便于上手和学习
生态系统丰富提供了多种版本
采用主流框架比如 SpringBoot、Shiro、Thymeleaf、Vue、Bootstrap
......
她可以用于所有的 Web 应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。
推荐指数 :⭐⭐⭐
这个项目同样在我上大学那会就很火了!简单从下面说几个方面介绍 Jeecg-boot 吧!
低代码 :JeecgBoot 是一款基于代码生成器的 J2EE 低代码快速开发平台。强大的代码生成器让前后端代码一键生成,无需写任何代码!
采用主流框架 :整体采用现在流行的前后端分离架构:后端框架为主流的 SpringBoot 2.x,前端为主流的 Ant Design&Vue。另外,还用到了 Mybatis-plus 数据库层面的框架,以及 Shiro 和 JWT 做身份认证和权限管理。
整体灵活实用 :简单功能由 Online Coding 配置实现,帮助 Java 项目解决 70%重复工作,复杂功能由代码生成器生成进行手工 Merge。让开发更关注业务逻辑,既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。
相关地址:
项目地址:https://gitee.com/jeecg/jeecg-boot
在线演示 :http://boot.jeecg.com
技术官网:http://www.jeecg.com
整个项目的技术架构如下图所示,README 文档已经贴好了,我就直接复制过来了。
采用主流框架,前后端分离,对开发比较友好;
用户管理和权限权利模块做的非常好,满足绝大部分人员管理场景的需求。权限控制采用 RBAC(Role-Based Access Control,基于角色的访问控制) ,支持菜单动态路由。
提供了 Excel 导入导出、报表工具等必备功能。
自带消息中心,支持短信、邮件、微信推送等等。
页面校验自动生成(必须输入、数字校验、金额校验、时间空间等);
平台 UI 强大,实现了移动自适应,无需再为移动端适配;
......
Jeecg-Boot 快速开发平台,可以应用在任何 J2EE 项目的开发中,尤其适合企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工 Merge 的开发方式,可以显著提高开发效率 70%以上,极大降低开发成本。
推荐指数 :⭐⭐
简单来说:
分布式架构 :iBase4J 是 Java 语言的分布式系统架构。
Maven 模块化管理 :使用 Maven 对项目进行模块化管理,提高项目的易开发性、扩展性。
子系统扩展性强 :子系统之间使用 Dubbo 或 MQ 进行通信。
......
相关地址:
项目地址:https://gitee.com/iBase4J/iBase4J
技术选型如下:
核心框架:Sring boot + Spring Framework + Dubbo + ibase4j-common
安全框架:Apache Shiro
任务调度:Spring + Quartz
持久层框架:MyBatis + MyBatis-Plus
数据库连接池:Alibaba Druid
缓存框架:Redis
会话管理:Spring-Session
日志管理:SLF4J、Log4j2
前端框架:Angular JS + Bootstrap + Jquery
分布式架构,但是用的是 Dubbo,如果有 Spring Cloud 版本就好了。
支持 QQ、微信、新浪微博第三方登录。
自带 excel 导入导出,汉字转拼音,身份证号码验证,数字转大写人民币,FTP/SFTP/fastDFS 上传下载,发送邮件,redis 缓存,加密等等工具类
......
分布式企业管理系统的场景。
推荐指数 :⭐⭐⭐⭐⭐
eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由。
相关地址 :
Github 地址:https://github.com/elunez/eladmin
官网:https://docs.auauz.net/
文档:https://docs.auauz.net/guide/
项目基本稳定,并且后续作者还会继续优化。
完全开源!这个真的要为原作者点个赞,如果大家觉得这个项目有用的话,建议可以稍微捐赠一下原作者支持一下。
后端整理代码质量、表设计等各个方面来说都是很不错的。
前后端分离,前端使用的是国内常用的 vue 框架,比较容易上手。
前端样式美观,是我这篇文章推荐的几个开源项目中前端样式最好看的一个。
权限控制采用 RBAC,支持数据字典与数据权限管理。
后台首页
角色管理页面
推荐指数 :⭐⭐⭐⭐
renren 下面一共开源了两个 Java 项目开发脚手架,分别是:
renren-security :采用 Spring、MyBatis、Shiro 框架,开发的一套轻量级权限系统,极低门槛,拿来即用。
renren-fast : 一个轻量级的 Java 快速开发平台,能快速开发项目并交付【接私活利器】
renren-security 相比于 renren-fast 在后端功能的区别主要在于:renren-security 提供了权限管理功能,另外还额外提供了数据字典和代码生成器。
相关地址 :
renren-security :https://gitee.com/renrenio/renren-security
renren-fast:https://gitee.com/renrenio/renren-fast
官网:https://www.renren.io/
被很多企业采用,说明稳定性和社区活跃度不错。
微服务版 renren-cloud(这个一般企业也用不上吧!)和 renren-security 需要收费才能正常使用,renren-fast 属于完全免费并且提供了详细的文档,不过,完整文档需要捐赠 80 元才能获取到。
renren-fast菜单管理
renren-fast定时任务
推荐指数 :⭐⭐⭐⭐⭐
SpringBlade 是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpringBoot 单体式微服务架构并存的综合型项目,采用 Java8 API 重构了业务代码,完全遵循阿里巴巴编码规范。采用 Spring Boot 2 、Spring Cloud Hoxton 、Mybatis 等核心技术,同时提供基于 React 和 Vue 的两个前端框架用于快速搭建企业级的 SaaS 多租户微服务平台。
SpringBlade架构图
相关地址 :
后端 Gitee 地址:https://gitee.com/smallc/SpringBlade
后端 Github 地址:https://github.com/chillzhuang/SpringBlade
后端 SpringBoot 版:https://gitee.com/smallc/SpringBlade/tree/2.0-boot/
前端框架 Sword(基于 React):https://gitee.com/smallc/Sword
前端框架 Saber(基于 Vue):https://gitee.com/smallc/Saber
核心框架项目地址:https://github.com/chillzhuang/blade-tool
官网:https://bladex.vip
允许免费用于学习、毕设、公司项目、私活等。 如果商用的话,需要授权,并且功能更加完善。
前后端分离,后端采用 SpringCloud 全家桶,单独开源出一个框架:BladeTool (感觉很厉害)
集成 Sentinel 从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性。
借鉴 OAuth2,实现了多终端认证系统,可控制子系统的 token 权限互相隔离。
借鉴 Security,封装了 Secure 模块,采用 JWT 做 Token 认证,可拓展集成 Redis 等细颗粒度控制方案。
项目分包明确,规范微服务的开发模式,使包与包之间的分工清晰。
SpringBlade工程结构
Sword后端管理页面
Sword菜单管理页面
推荐指数 :⭐⭐⭐⭐⭐
根据我的了解来看,很多公司的项目都是基于 COLA 进行开发的,相比于其他快速开发脚手架,COLA 并不提供什么已经开发好的功能,它提供的主要是一个干净的架构,然后你可以在此基础上进行开发。
如下图所示,一个通过一行命令就生成好的 web 后端项目骨架是下面这样的:
COLA应用架构
COLA 既是框架,也是架构。创建 COLA 的主要目的是为应用架构提供一套简单的可以复制、可以理解、可以落地、可以控制复杂性的”指导和约束"。
框架部分主要是以二方库的形式被应用依赖和使用。
架构部分主要是提供了创建符合 COLA 要求的应用 Archetype。
相关地址:
Github 地址:https://github.com/alibaba/COLA
COLA 2.0 介绍:https://blog.csdn.net/significantfrank/article/details/100074716
模块之间划分清晰;
一键生成项目骨架;
继承了常用的类和功能比如日志功能;
统一的返回格式以及错误处理;
一行命令生成的 web 后端项目骨架
后端返回结果示意图
推荐指数 :⭐⭐⭐⭐
SpringBoot_v2 项目是努力打造 springboot 框架的极致细腻的脚手架。原生纯净,可在线生成 controller、mapperxml、dao、service、html、sql 代码,极大减少开发难度,增加开发进度神器脚手架!!不求回报,你使用快乐就是这个项目最大的快乐!后台管理包含代码生成器。
相关地址 :
Github 地址 :https://github.com/fuce1314/Springboot_v2
Gitee 地址 :https://gitee.com/bdj/SpringBoot_v2
相关文档 :https://gitee.com/bdj/SpringBoot_v2/wikis
没有基础版、没有 vip 版本、没有付费群、没有收费二维码。
对新手友好,配置好数据库连接即可运行。
满足一般中小企业的基本需求。
功能简单,无其他杂七杂八的功能
后台首页
后台添加电子邮件
我的 75k Star 开源项目 JavaGuide 总结而成的PDF版本的《JavaGuide面试突击版》,公众号后台回复“面试突击”即可获取最新版本!安排!
https://leetcode.com
https://leetcode-cn.com
LeetCode: 被称为刷题神器,里面有很编程算法面试的海量题目,可以在线编译运行,难度比较高。如果自己能都做出来,对面试大公司很有帮助。建议一次只针对一种题型进行训练,如数组、链表、二叉树、回溯、动态规划,这样效果会更好。
https://www.lintcode.com
LintCode: 汇集了各大公司的算法面试题,有阶梯式训练题库,帮你选好应该刷的题目,特别适合小白和懒人。评测数独特快,支持中文在线题库,不需要你处理输入和输出,方便了很多,测试速度也很快。
https://visualgo.net/zh
VisuAlgo: 是一个数据结构和算法动态可视化平台,中文版页面,可视化学习算法,帮助你理解算法的每个过程(动画演示),并演示每个步骤的过程代码,非常不错!
https://algorithm-visualizer.org
Algorithm Visualizer: 是一个可视化代码算法的交互式在线平台,它支持的算法种类也很多,除此之外,它还提供java,c++,js代码,而控制台也输出着整个过程来帮助你理解算法。
https://alibaba.github.io/arthas
Arthas: 是Alibaba开源的Java诊断工具,深受开发者喜爱,当你遇到:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
以上类似问题而束手无策时,Arthas可以帮助你解决。
https://render.alipay.com/p/s/jvm-generate
Aliabba jvmGenerate: 是一个提供 JVM 参数调优分析,JVM优化工具集,快速生成JVM优化配置,常见场景配置示例的工具网站。
PerfMa: 有三个比较优秀的开发者工具,分别是:XXFox (Java虚拟机参数分析),XSheepdog (Java线程Dump分析),XElephant (Java内存Dump分析)
https://opts.console.perfma.com
Java虚拟机参数分析: 是一款 PerfMa 资深专家对 JVM 源码的研究和多年性能调优实践经验而开发的工具,为用户学习和使用 JVM 参数提供很大的便利。即使不太懂 JVM 参数的初级用户,也可以借助 XXFox 得到相对合理的参数列表。
https://thread.console.perfma.com
Java线程Dump分析: 是一款在线分析线程Dump文件的产品,将线程、线程池、栈、方法及锁的关系梳理清楚,通过多种视角呈献给用户,让线程问题一目了然。
https://memory.console.perfma.com
Java内存Dump分析: 是一款在线分析Java内存Dump文件的产品。可以让内存里对象之间的各种依赖关系更加清晰明了,无需安装软件,提供上传方式,不受本地机器内存限制,支持超大Dump文件分析。
https://fastthread.io
Fastt hread: 一个在线的 Thread dump分析网站,能帮助我们判断 CPU 峰值、死锁、内存异常、应用反应迟钝、响应时间变长和其他系统问题。
http://www.v2ex.com
V2EX 严格意义上不算是纯粹的技术社区,它定位是创意工作者的社区,但其实里面全是 IT 行业内的人。大家会喜欢像发帖一样在里面讨论创意、新的技术、吐槽等活动,人气很高,这个平台的风控机制也比较严格,页面刷新太快也会被限制,网友常常说,V2EX 是一个神奇的网站(也是一个上班摸鱼的网站)。
https://tech.souyunku.com
没错,这个就是我做的网站,惊不惊喜,意不意外!
搜云库系列教程: 是一个专注于Java技术系列文章的Java技术分享网站,专注于收集网上优质的系列文章,里面涵盖 70多个技术专栏分类,你知道道,不知道的,里面都有很多,但是基本都是后端技术分类,可以让您不需要花费时间就可以找到优质的博客来学习,。