Chinese | English
Github repository | Code cloud repository | ? Official website | Online experience | Framework ecology | Usage documentation
Erupt Cloud [Distributed Cloud Configuration] | Erupt BI [Data Analysis] | Erupt Tenant [Multi-tenant]
QQ communication group: 836044286
Erupt is a low-code full-stack class framework that uses Java annotations to dynamically generate pages and background functions such as adding, deleting, modifying, checking, and permission control.
Zero front-end code, zero CURD, automatic table creation, only one class file + simple annotation configuration, and rapid development of enterprise-level Admin management background.
High scalability, supports CURD to freely extend @DataProxy, custom data sources, logical deletion, LDAP, and OSS.
Provide full-stack solutions for enterprise-level middle and back-end management systems, significantly shortening the research and development cycle and focusing on core business.
Perfectly replaces code generators and develops better solutions for backend management systems
It has been continuously optimized and upgraded since 2020. It is currently used by hundreds of small and medium-sized companies, and thousands of developers develop related applications. Hundreds of developers participated in submitting feature suggestions, and more than 30 contributors participated in submitting code.
Automatic table creation : the table structure is automatically generated, no need to manually create the table
Easy to get started : just know the basics of Spring Boot
Easy to use : You only need to understand the two annotations @Erupt and @EruptField to get started with development
The code is concise : only one .java
file is needed, and template, controller, service, and dao do not need to be created.
Powerful functions : dynamic condition processing, logical deletion, LDAP, custom login logic, RedisSession, operation log, etc.
Multiple data sources : support: MySQL, Oracle, SQL Server, PostgreSQL , H2, and even MongoDB
High scalability : supports custom data source implementation, custom login logic, dynamic permission management, life cycle functions, and custom OSS
A large number of components : sliding input, time selection, one-to-many , image upload, code editor, auto-complete, tree, many-to-many , map and other 23 types of components
Rich display : ordinary text, QR code , link, picture, HTML, code snippet, iframe, swf, etc.
Low intrusion : Almost all functions revolve around annotations and do not affect other Spring Boot functions or the use of third-party libraries.
Separation of front-end and front-end : back-end and front-end can be deployed separately
Responsive layout : supports use on devices of various specifications such as PC and mobile phones
Custom page : supports custom page, custom pop-up layer, and supports: native H5 / Freemarker / Thymeleaf and other rendering methods
Front-end zero code : The front-end layout is automatically built, and you don’t need to write a single line of front-end code.
No need for secondary development : just reference the jar package!
Github | code cloud | |
---|---|---|
Backend source code | https://github.com/erupts/erupt | https://gitee.com/erupt/erupt |
Front-end source code | https://github.com/erupts/erupt-web | https://gitee.com/erupt/erupt-web |
Sample code | https://github.com/erupts/erupt-example | https://gitee.com/erupt/erupt-example |
Although code generators have become the new favorite of back-end development in recent years, is it really the optimal solution for back-end development?
The essence of a code generator is to generate tedious front-end and back-end code. Once modified, the code generated later is difficult to merge. Think about Mybatis-Generator, which is basically a one-time thing. Although it alleviates some work, the solution is not the best. .
In most cases, when developing a backend management system, you just want to make a common addition, deletion, modification and query interface for data management, similar to the following:
PS: erupt supports defining complex page customizations, see the erupt-tpl module for details.
@ 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 = "布尔" , search = @ Search )
)
private Boolean bool ;
@ EruptField (
views = @ View ( title = "时间" ),
edit = @ Edit ( title = "时间" , search = @ Search ( vague = true ))
)
private Date date ;
@ EruptField (
views = @ View ( title = "滑动条" ),
edit = @ Edit ( title = "滑动条" , type = EditType . SLIDER , search = @ Search ,
sliderType = @ SliderType ( max = 90 , markPoints = { 0 , 30 , 60 , 90 }, dots = true ))
)
private Integer slide ;
@ EruptField (
views = @ View ( title = "下拉选择" ),
edit = @ Edit (
search = @ Search ,
title = "下拉选择" , type = EditType . CHOICE ,
choiceType = @ ChoiceType ( fetchHandler = SqlChoiceFetchHandler . class ,
fetchHandlerParams = "select id,name from e_upms_menu"
)
)
)
private Long choice ;
}
Functional experience
Although this interface can be roughly made using Vue + Ant Design + SSM, if you look closely, you will find that it has a lot of detailed functions such as:
Implementing all of these requires a lot of code on the front end alone, not to mention the interfaces and business logic on the back end.
But you can see that using erupt only requires 30 lines of code to complete!
No need to know Angular/React/Vue/Jquery at all
And no need to know JavaScript/HTML/CSS
Don't even need to know Spring MVC/Mybatis/SQL
Even if you have not learned erupt, you can guess the role of most configurations. All background page development can be completed with simple configurations.
This is the original intention of establishing erupt. For most commonly used pages, the simplest method should be used. You don't even need to learn various frameworks and tools to focus on the core business.
Traditional Spring Web development | code generator | Axelor | Erupt | |
domain model | Java code | Java code | XML definition | Annotation annotation definition |
DTO | Java code | code generation | unnecessary | unnecessary |
ORM mapping | XML or Java code | code generation | code generation | Annotation definition |
data access | Interface + implementation | code generation | code generation | Built-in + on-demand implementation |
business logic | Interface + implementation | Code generation + logic adjustment | Built-in + on-demand implementation | Built-in + on-demand @DataProxy implementation |
Presentation layer MVC | Java code + view template | Code generation + logic adjustment | unnecessary | unnecessary |
front end | More than Java code | Code generation + logic adjustment | No development required for regular applications | No development required for regular applications |
Mobile display effect | |||
Download the latest JAR or obtain it through 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 >
Detailed usage steps
erupt
├── erupt - annotation -- 核心注解声明
├── erupt - core -- 核心功能实现
├── erupt - data -- 数据实现包
├── erupt - jpa -- 关系型数据库erupt实现
└── erupt - mongodb -- mongodb数据库erupt实现
├── erupt - job -- 定时任务功能,支持动态定时任务,邮件发送,任务日志等功能
├── erupt - upms -- 用户权限管理
├── erupt - security -- 接口数据安全
├── erupt - web -- 编译后的前端页面
├── erupt - tpl -- 支持在 erupt 中自定义页面,自定义图表,自定义弹出层,模板引擎支持:FreeMarker / Thymeleaf / 原生H5 / Velocity 等
├── erupt - tpl - ui -- 在 erupt-tpl 中可使用的 UI 库
├── ant - design
├── element - ui
└── amis
├── erupt - generator -- 代码生成器,通过配置,生成 erupt 代码段
└── erupt - monitor -- 基于erupt实现的服务监控
erupt - pro
├── erupt - dataflow -- 基于erupt实现的数据流(构思中)
├── erupt - workflow -- 基于erupt实现的工作流(构思中)
├── erupt - tenant -- 基于erupt实现的SaaS云多租户(开发中,面向企业用户)
└── erupt - bi -- 通过 sql 加 js 混编实现动态报表,支持:多数据源、自定义函数、图表开发等(面向企业用户)
erupt - site -- Erupt 官方网站 https://github.com/erupts/erupt-site
erupt - web -- Erupt 前端源码 https://github.com/erupts/erupt-web
Backend: Java 8, Spring Boot, ScriptEngine, SpEL, Annotation, JDBC, Reflect, JPA, Hibernate, Quartz, Gson, Lombok, POI...
Front-end: JavaScript, H5, MVVM, Router, Angular CLI, Angular, NG-ZORRO, NG-ALAIN, G2Plot, RxJS, TypeScript, Less...
Demo address: https://www.erupt.xyz/demo
Account password: guest / guest
Supports 4 mainstream modern browsers, as well as Internet Explorer 11+, and can run directly on web standards-based environments such as Electron
Edge/IE | Firefox | Chrome | Safari | Opera | Electron |
---|---|---|---|---|---|
Edge 16/IE 11+ | 522 | 57 | 11 | 44 | Chromium 57 |
zeta-api
: Quickly create API interfaces and documents through XML configuration, safe and efficient, essential for rapid development!
Jpom
: Simple and light low-intrusive online construction, automatic deployment, daily operation and maintenance, and project monitoring software
QQ communication group: 836044286
WeChat communication group: Since the WeChat group QR code is only valid for 7 days, follow the Erupt official public account (EruptGuide) to get the latest group QR code
The server, domain name, space, labor and other costs of this framework have been paid for and maintained by the author himself. Open source is not easy, but a cup of coffee is also a matter of love.
Go to donate
Github repository | Code cloud repository | ? Official website | Online experience | Usage documentation
Author: YuePeng / [email protected]