秒建一个后台管理系统?用这5个开源免费的Java项目就够了

这是我的第 196 期分享

作者 | Guide

来源 | JavaGuide(ID:JavaGuide) 

分享 | Java中文社群(ID:javacn666)

大家好,我是 Guide 哥,一个三观比主角还正的技术人。

今天推荐几个 Java 项目快速开发脚手架,解放双手 ✋ 从现在开始。

以下推荐项目都是码云上的优质项目,并且都是项目快速开发脚手架,代码质量什么的无法保证能有多好,毕竟很多也是个人开发,或多或少也有个人色彩影响。

不过既然开源出来,这么多人参与,一般情况下项目整体质量可以说是非常不错的了。另外,下面推荐的项目几乎都是码云上面选出来的最有价值的开源项目。后面,可能会单独再推荐一期 Github 上的 Java 项目快速开发脚手架。

想要获取更多开源项目资源?欢迎关注我的 awesome-java(Github 上非常棒的 Java 开源项目集合),地址:https://github.com/Snailclimb/awesome-java

概览

  1. Guns

  2. pig

  3. RuoYi

  4. Jeecg-boot

  5. iBase4J

Guns

推荐指数 :⭐⭐⭐⭐⭐

简介

我在上大学的时候就了解和接触过了这个项目,当时我还是一个 Spring 入门不太久的小菜鸟。一晃,不经意间已经过去快 3 年了。

  1. 采用主流框架 :基于 Spring Boot2.0+版本开发,并且支持 Spring Cloud Alibaba 微服务。

  2. 功能齐全 :包含系统管理,代码生成,多数据库适配,SSO 单点登录,工作流,短信,邮件发送,OAuth2 登录,任务调度,持续集成,docker 部署等功能;

  3. 提供了企业版 :企业版功能更多,并且提供了完善的开发文档,开发 demo,快速入门。

相关地址:

  1. 项目地址 :https://gitee.com/stylefeng/guns

  2. 项目官网 :https://www.stylefeng.cn/

另外,这个项目还提供了视频教你如何使用,地址:https://www.bilibili.com/video/av56718207

推荐理由

  1. 项目技术主流,唯一缺点是企业版和微服务版需要单独购买。

  2. 社区活跃。

  3. 项目功能完善,满足企业绝大部分场景开发需求,并且额外提供了持续集成,docker 部署等功能。

  4. ......

适合场景

适合企业后台管理网站的快速开发场景,不论是对于单体和微服务都有支持。

项目展示

pig

推荐指数 :⭐⭐⭐⭐⭐

简介

这个项目之前就推荐过几次,你可以在这个视频:https://www.bilibili.com/video/BV1b7411N7Qt 中找到。

根据项目官网,简单说下这个项目:

  1. 基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的 RBAC 权限管理系统

  2. 基于数据驱动视图的理念封装 element-ui,即使没有 vue 的使用经验也能快速上手

  3. 提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持

  4. 提供 lambda 、stream api 、webflux 的生产实践

相关地址

  1. 项目地址:https://gitee.com/log4j/pig

  2. 官网地址:https://pig4cloud.com/

推荐理由

  1. 社区活跃;

  2. 提供了 Spring Cloud Hoxton & Alibaba 的微服务版本;

  3. 权限管理做得不错!

  4. 功能完全开源!

  5. 支持第三方系统比如 guns、renren 接入

  6. ......

适合场景

项目展示

RuoYi

推荐指数 :⭐⭐⭐⭐

简介

项目名字是作者还未出生的女儿,看到之后很感动!

RuoYi 一款基于基于 SpringBoot 的权限管理系统 易读易懂、界面简洁美观,直接运行即可用 。

作者是这样介绍这个项目的:

一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套后台系统。如此有了若依。她可以用于所有的 Web 应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。

性别男,若依是给还没有出生女儿取的名字(寓意:你若不离不弃,我必生死相依)

相关网站

  1. 项目地址 :https://gitee.com/y_project/RuoYi

  2. 文档地址 :http://doc.ruoyi.vip/

  3. 官网地址:http://ruoyi.vip/

推荐理由

  1. 提供了多种版本:单体、前后端分离、微服务(即将开源)

  2. 提供的功能齐全,覆盖大部分场景需求

  3. 提供的文档丰富便于上手和学习

  4. 生态系统丰富提供了多种版本

  5. 采用主流框架比如 SpringBoot、Shiro、Thymeleaf、Vue、Bootstrap

  6. ......

适合场景

她可以用于所有的 Web 应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。

项目展示

Jeecg-boot

推荐指数 :⭐⭐⭐

简介

这个项目同样在我上大学那会就很火了!简单从下面说几个方面介绍 Jeecg-boot 吧!

  1. 低代码 :JeecgBoot 是一款基于代码生成器的 J2EE 低代码快速开发平台。强大的代码生成器让前后端代码一键生成,无需写任何代码!

  2. 采用主流框架 :整体采用现在流行的前后端分离架构:后端框架为主流的 SpringBoot 2.x,前端为主流的 Ant Design&Vue。另外,还用到了 Mybatis-plus 数据库层面的框架,以及 Shiro 和 JWT 做身份认证和权限管理。

  3. 整体灵活实用 :简单功能由 Online Coding 配置实现,帮助 Java 项目解决 70%重复工作,复杂功能由代码生成器生成进行手工 Merge。让开发更关注业务逻辑,既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。

相关地址:

  1. 项目地址:https://gitee.com/jeecg/jeecg-boot

  2. 在线演示 :http://boot.jeecg.com

  3. 技术官网:http://www.jeecg.com

整个项目的技术架构如下图所示,README 文档已经贴好了,我就直接复制过来了。

推荐理由

  1. 采用主流框架,前后端分离,对开发比较友好;

  2. 用户管理和权限权利模块做的非常好,满足绝大部分人员管理场景的需求。权限控制采用 RBAC(Role-Based Access Control,基于角色的访问控制) ,支持菜单动态路由。

  3. 提供了 Excel 导入导出、报表工具等必备功能。

  4. 自带消息中心,支持短信、邮件、微信推送等等。

  5. 页面校验自动生成(必须输入、数字校验、金额校验、时间空间等);

  6. 平台 UI 强大,实现了移动自适应,无需再为移动端适配;

  7. ......

适合场景

Jeecg-Boot 快速开发平台,可以应用在任何 J2EE 项目的开发中,尤其适合企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工 Merge 的开发方式,可以显著提高开发效率 70%以上,极大降低开发成本。

项目展示

iBase4J

推荐指数 :⭐⭐

简介

简单来说:

  1. 分布式架构 :iBase4J 是 Java 语言的分布式系统架构。

  2. Maven 模块化管理 :使用 Maven 对项目进行模块化管理,提高项目的易开发性、扩展性。

  3. 子系统扩展性强 :子系统之间使用 Dubbo 或 MQ 进行通信。

  4. ......

相关地址:

  1. 项目地址: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

推荐理由

  1. 分布式架构,但是用的是 Dubbo,如果有 Spring Cloud 版本就好了。

  2. 支持 QQ、微信、新浪微博第三方登录。

  3. 自带 excel 导入导出,汉字转拼音,身份证号码验证,数字转大写人民币,FTP/SFTP/fastDFS 上传下载,发送邮件,redis 缓存,加密等等工具类

  4. ......

适合场景

分布式企业管理系统的场景。

项目展示

if快还是switch快?解密switch背后的秘密

String性能提升10倍的几个方法!(源码+原理分析)

关注公众号发送”进群“,磊哥拉你进读者群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读《白帽子讲Web安全》之客户端脚本安全(一)

2019独角兽企业重金招聘Python工程师标准>>> 【第2章 浏览器安全】 1、同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能。 浏览器的同源策略,限制了来自不同源的“document”或脚本&…

RocketMQ一行代码造成消息发送失败

这是我的第 198 期分享作者 | 丁威来源 | 中间件兴趣圈(ID:dingwpmz_zjj)分享 | Java中文社群(ID:javacn666)1、问题现象首先接到项目反馈使用 RocketMQ 会出现如下错误:错误信息关键点&#xf…

生命游戏(game of life)

生命游戏 (game of life )是一款非常著名的游戏。它包括一个二维 矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这…

setpriority_Java Thread类的最终void setPriority(int priority)方法(带示例)

setpriority线程类最终void setPriority(int priority) (Thread Class final void setPriority(int priority)) This method is available in package java.lang.Thread.setPriority(int priority). 软件包java.lang.Thread.setPriority(int priority)中提供了此方法。 This me…

汇编级UART串口初始化与打印

用于新PCB板调试开发,在系统最开始(内存初始化之前),尽快打印字符,验证CPU是否正常启动。 以freescale QorIQ 处理器兼容的UART为例,符合16550串口标准: /*UART DEBUG*/ /*#define CCSBAR_RESET…

Java 中的 String 有没有长度限制?

这是我的第 199 期分享作者 | Hollis来源 | Hollis(ID:hollischuang) 分享 | Java中文社群(ID:javacn666)关于String有没有长度限制的问题,我之前单独写过一篇文章分析过,最近我又抽…

c语言编程输入a是输出为a_C ++编程基本输入,输出,数据类型,声明能力倾向问题和解答...

c语言编程输入a是输出为aThis section contains C programming Basic Input, Output, Data types, Declaration etc Aptitude Questions and Answers with explanations. 本节包含C 编程的基本输入,输出,数据类型,声明等,以及有关…

关联数组(associative array)

关联数组(associative array )是一种常用的抽象数据类型。它有很多别名,例如associative container , map , mapping , dictionary , finite map , table,index 等。它的特点是由一个关键字和其他各种属性组成的集合。典型的操作包括插入,删除…

开源 免费 java CMS - FreeCMS2.1 菜单管理

2019独角兽企业重金招聘Python工程师标准>>> 项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以FreeCMS提供了菜单管理功能,二次开发人员可以自由增加新的功能菜单到FreeCMS。 为了让后台…

本来想用“{{”秀一波,结果却导致了内存溢出!

这是我的第 200 期分享作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些“老同志”总是在不…

在Ruby中使用&运算符(new_array- arr&old_Array)创建数组实例

In the last articles, we have gone through many methods through which we can create Array Instances but you all must know that those all were Public class methods and now in the upcoming articles, we will be learning about Public instance methods. 在上一篇…

Run Length Encoding

游程编码 (Run Length Encoding ) 是一种简单的编码方法,通常用于控制论中对二值图像编码。ACM有一道题目就是关于该编码。见tzu 1149 或poj 1782 。虽然是简单题,我却花了好大功夫才搞定,功力还是不足阿。 程序代码如下: #incl…

局部变量竟然比全局变量快 5 倍?

这是我的第 201 期分享作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)喽,大家好,磊哥的性能优化篇又来了!其实写这个性能优化类的文章初…

FreeMarker笔记 前言第1章 入门

简介 简介 FreeMarker是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于HTML格式的文本用来自动生成源代码)的通用工具。它是为Java程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员提供的可以嵌…

优先级调度算法动态优先级_与优先级调度有关的问题及其解决方案

优先级调度算法动态优先级We are already familiar with what Priority Scheduling is. It is one of the most used process scheduling algorithm used in operating systems, in which every process is assigned with a priority. According to this algorithm, the proces…

hdoj 1013 Digital Roots

链接&#xff1a;zoj 1115 或 hdoj 1013 或poj 1519 虽说是水题&#xff0c;却几经波折才搞定。该题目中的数字可能非常大&#xff0c;所以不能使用整型数&#xff0c;只能采用字符变量 代码如下&#xff1a; #include <stdio.h>int digitalRoot(int n); int digitS…

厉害了,3万字的MySQL精华总结 + 面试100问!

这是我的第 202 期分享作者 | 派大新来源 | JavaKeeper&#xff08;ID&#xff1a;JavaKeeper&#xff09;分享 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;❝写在之前&#xff1a;不建议那种上来就是各种面试题罗列&#xff0c;然后背书式的去记忆&#x…

网页视频播放器代码大全 + 21个为您的站点和博客提供的免费视频播放器

推荐 使用 极酷 Web在线播放器。网页中嵌入视频代码综合全然版 1.avi格式 代码片断例如以下&#xff1a;  程序代码 <objectid"video"width"400"height"200"border"0"classid"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA&q…

codejam题目_嵌套深度-Google CodeJam 2020资格回合问题解决方案

codejam题目Problem statement: 问题陈述&#xff1a; Given a string of digits S, insert a minimum number of opening and closing parentheses into it such that the resulting string is balanced and each digit d is inside exactly d pairs of matching parentheses…

hdoj 1015 Safecracker

见hdoj 1015 或 zoj 1403 或tzu 1308 我使用了枚举法&#xff0c;代码写的很罗嗦&#xff0c;可能还是深度优先搜索写起来更清晰。 /* hdoj 1015 */ #include <stdio.h> #include <string.h>#define MAX (125) #define RESLEN 5 int bubSort(int a[], int n); in…