百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

推荐一款GitHub10k+点赞Spring Boot快速开发企业级Admin管理后台

wptr33 2025-05-02 21:37 30 浏览

介 | Intro

Erupt 是一个低代码 全栈类 框架,它使用 Java 注解 动态生成页面以及增、删、改、查、权限控制等后台功能。

零前端代码、零 CURD、自动建表,仅需 一个类文件 + 简洁的注解配置,快速开发出企业级 Admin 管理后台。

提供企业级中后台管理系统的全栈解决方案,大幅压缩研发周期,专注核心业务。

完美取代 代码生成器,开发后台管理系统更优解!

特性 | Features

  • 易于上手:会简单地 Spring Boot 基础知识即可
  • 使用简单:仅需了解 @Erupt 与 @EruptField 两个注解即可上手开发
  • 代码简介:前端零代码,后端 template、controller、service、dao 都不需要,仅需一个类文件即可
  • 敏捷开发:仅单个.java文件即可实现后台管理功能,专注业务与核心功能的研发
  • 快速迭代:需求变更仅需修改或添加注解配置即可,迭代速度比需求讨论速度还快
  • 功能强大:动态条件处理,支持增删改查等功能代理接口,Session存储机制选择,行为日志记录等
  • 自动建表:依托于JPA可自动帮你完成数据库建表相关工作
  • 低侵入性:几乎所有功能都围绕注解而展开,不影响Spring Boot其他功能或三方库库的使用
  • 多数据源:支持:MySQL、Oracle、SQL Server、PostgreSQL、H2,甚至支持 MongoDB
  • 大量组件:滑动输入、时间选择、一对多、图片上传、代码编辑器、自动完成、树、多对多、地图等23类组件
  • 丰富展示:普通文本、二维码、链接、图片、HTML、代码段、iframe、swf等
  • 代码生成:erupt代码已经足够简洁,代码生成器可进一步提升开发效率
  • 高扩展性:支持自定义数据源实现、自定义页面、动态权限管理、生命周期函数、自定义OSS等
  • 界面美观:每个交互都精心设计,产品思维打磨,只为了更好的操作体验
  • 权限管理:用户管理、角色管理、组织管理、菜单管理、登录日志、操作日志等
  • 高安全性:可靠的安全机制,登录白名单,权限验证,注解项检查,细颗粒度权限控制,为你的数据保驾护航
  • 前后端分离:后端与前端可分开部署
  • 响应式布局:支持PC端手机端等各种规格的设备中使用
  • 无需二次开发:仅需引用 jar 包即可 !
  • 支持扩展页面:可开发自定义页面,自定义弹出层,且支持:原生H5 / Freemarker / Thymeleaf等方式渲染

演示截图 | Screenshot

为什么要做 Erupt ?

无论开发怎样的系统,都需要配套的管理后台做数据支撑,是软件开发中必不可少的一环,但实际开发中存在着无法规避的痛点,如:开发效率低下、接口对接繁琐、界面差强人意、代码重复、有安全漏洞,导致开发成本极高。

虽然近些年来 代码生成器 成了后台开发的新宠,但它真的是后台开发的最优解吗?
代码生成器的本质还是生成繁琐的前端与后台代码,一旦修改后期生成的代码很难合并,想想 Mybatis-Generator,基本上就是一次性的东西,虽然减轻了部分工作,可解决方式并非最佳。

开发后台管理系统大部分情况下只想做个普通的增删改查界面,用于数据管理,类似下面这种:

@Erupt(
name = "简单的例子",
power = @Power(importable = true, export = true)
)
@Table(name = "t_simple") //数据库表名
@Entity
public class Simple extends BaseModel {

@EruptField(
        views = @View(title = "文本"),
        edit = @Edit(title = "文本", notNull = true, search = @Search)
)
private String input;

@EruptField(
        views = @View(title = "数值", sortable = true),
        edit = @Edit(title = "数值", search = @Search)
)
private Float number;

@EruptField(
        views = @View(title = "布尔"),
        edit = @Edit(title = "布尔")
)
private Boolean bool;

@EruptField(
        views = @View(title = "时间"),
        edit = @Edit(title = "时间", search = @Search(vague = true))
)
private Date date;

}

功能体验

这个界面虽然用 Vue + Ant Design + SSM 也能做出个大概,但仔细观察会发现它有大量细节功能如:

  • 有按钮可以查询、新增、批量删除、excel 导入导出
  • 可以对数据做筛选、隐藏某列、按某列排序
  • 表格有分页与汇总,可预览单行数据
  • 多种组件、有校验规则

全部实现这些仅前端就需要大量的代码,后端的接口与业务逻辑更不在少数。

但可以看到,用 erupt 只需要 30几行 代码就能完成,

完全不需要了解 Angular / React / Vue / Jquery

而且不需要了解 JavaScript / HTML / CSS

甚至不需要了解 Spring MVC / Mybatis / SQL

即便没学过 erupt 也能猜到大部分配置的作用,只需要简单配置就能完成所有后台页面的开发。

这正是建立 erupt 的初衷,对于大部分常用页面,应该使用最简单的方法来实现,甚至不需要学习各种框架和工具,专注核心业务,告别 996,省下的时间做自己喜欢做的事,从此不再因为繁琐的后台开发而焦头烂额。

下载使用 | Download

下载最新的JAR或通过Maven获取。

--用户权限管理-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-upms</artifactId>
  <version>LATEST-VERSION</version>
</dependency>
<!--接口数据安全-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-security</artifactId>
  <version>LATEST-VERSION</version>
</dependency>
<!--后台WEB界面-->
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-web</artifactId>
  <version>LATEST-VERSION</version>
</dependency>` </pre>

详细使用步骤

模块说明 | Module

erupt
├── erupt-annotation -- 核心注解声明
├── erupt-core -- 核心功能实现
├── erupt-data -- 数据实现包
     ├── erupt-jpa -- 关系型数据库erupt实现
     └── erupt-mongodb -- mongodb数据库erupt实现
├── erupt-job -- 定时任务功能,支持动态定时任务,邮件发送,任务日志等功能
├── erupt-security -- 接口数据安全模块
├── erupt-upms -- 用户权限管理
├── erupt-tpl -- 支持在 erupt 中自定义页面,自定义图表,自定义弹出层,模板引擎支持:FreeMarker / Thymeleaf / 原生H5 / Velocity 等
├── erupt-generator -- 代码生成器,通过简单配置,生成 erupt 代码段
└── erupt-web -- 前端页面

erupt-pro
├── erupt-workflow -- 基于erupt实现的工作流模块(开发中)
├── erupt-dataflow -- 基于erupt实现的数据流模块(开发中)
└── erupt-bi -- 通过 sql 加 js 混编实现动态报表,支持:多数据源、自定义函数、图表开发等(付费模块)

erupt-site -- Erupt 官方网站 https://github.com/erupts/erupt-site

erupt-web-angular -- Erupt 前端源码,暂不开放,如有自定义页面的需求,可使用 erupt-tpl 模块` </pre>

技术体系 | Technology system

后端:Java 8、 ScriptEngine、 Annotation、 JDBC、 Reflect、 Spring Boot、 JPA、 Hibernate、 Quartz、 Gson、 Lombok、 POI ...

前端:JavaScript、 H5、 MVVM、 Router、 Angular CLI、 Angular、 NG-ZORRO、 NG-ALAIN、 G2Plot、 RxJS、 TypeScript、 Less ...


源码资料获取方式:关注小编+转发文章+私信【 0628】免费获取!!!!


1、为什么要用SpringBoot

Spring Boot 优点非常多,如:
一、独立运行
Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器
中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
二、简化配置
spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。 三、自动配置Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starterweb启动器就能拥有web的功能,无需其他配置。
四、无代码生成和XML配置
Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助
于条件注解完成的,这也是Spring4.x的核心功能之一。
五、应用监控
Spring Boot提供一系列端点可以监控服务及应用,做健康检测。

2、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成

的?
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了
以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数
据源自动配置功能: @SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class

})。
@ComponentScan:Spring组件扫描。

3、运行Spring Boot有哪几种方式?

1)打包用命令或者放到容器中运行
2)用 Maven/Gradle 插件运行
3)直接执行 main 方法运行

4、如何理解 Spring Boot 中的 Starters?

Starters是什么:
Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成
Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要
加入
spring-boot-starter-data-jpa启动器依赖就能使用了。Starters包含了许多项目中需要用到的

依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。
Starters命名:Spring Boot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。第三
方的启动器不能以spring-boot开头命名,它们都被Spring Boot官方保留。一般一个第三方的应该
这样命名,像mybatis的
mybatis-spring-boot-starter。

Starters分类:

  1. Spring Boot应用类启动器


5、 如何在Spring Boot启动的时候运行一些特定的代码?

如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口ApplicationRunner或
者CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。
CommandLineRunner:启动获取命令行参数

6、 Spring Boot 需要独立的容器运行吗?可以不需要,内置了 Tomcat/ Jetty 等容器。

7、 Spring Boot中的监视器是什么?

Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产
环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和监控。即使一些
外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作
为HTTP URL访问的REST端点来检查状态。

8、 如何使用Spring Boot实现异常处理?

Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。 我们通过实现一个
ControlerAdvice类,来处理控制器类抛出的所有异常。

9、 你如何理解 Spring Boot 中的 Starters?

Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成
Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要
加入
spring-boot-starter-data-jpa 启动器依赖就能使用了。

10、 springboot常用的starter有哪些

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持

spring-boot-starter-data-jpa 数据库支持


spring-boot-starter-data-redis redis数据库支持


spring-boot-starter-data-solr solr支持


mybatis-spring-boot-starter 第三方的mybatis集成starter

11、 SpringBoot 实现热部署有哪几种方式?

主要有两种方式:
Spring Loaded
Spring-boot-devtools

12、 如何理解 Spring Boot 配置加载顺序?

在 Spring Boot 里面,可以使用以下几种方式来加载配置。
1)properties文件;
2)YAML文件;3)系统环境变量;
4)命令行参数;
等等……

13、 Spring Boot 的核心配置文件有哪几个?它们的区别是什

么?
pring Boot 的核心配置文件是 application 和 bootstrap 配置文件。
application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景。
使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中
心的配置属性来加载外部配置中心的配置信息;
一些固定的不能被覆盖的属性;
一些加密/解密的场景;

14、如何集成 Spring Boot 和 ActiveMQ?

对于集成 Spring Boot 和 ActiveMQ,我们使用
spring-boot-starter-activemq 依赖关系。 它只需

要很少的配置,并且不需要样板代码。

源码资料获取方式:关注小编+转发文章+私信【 0628】免费获取!!!!

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个else解...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。今天分享一下break和continue在代码中的执行效果是什么,进一步区分出二者的区别。一、continue例1:当小明3岁时不打印年龄,其余年龄正常循环打印。可以看...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。答案:CSS的盒模型是用于布局和定位元素的概念。它由内容区域...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)1.vue的生命周期有哪些及每个生命周期做了什么?beforeCreate是newVue()之后触发的第一个钩子,在当前阶段data、methods、com...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...