零前端代码,几行 Java 注解,快速搭建后台管理系统!

Erupt Framework 是一个通用后台管理框架。Erupt 可快速的构建管理页面,零前端代码、零CURD、自动建表,仅需单个类文件 + 简洁的注解配置,即可快速开发企业级Admin管理后台!

后台管理系统非常重要,但开发存在一定的痛点,如:开发效率低、界面不美观、交互不理想、工作量重复、存在安全漏洞、后端研发被迫写前端代码等。

Erupt提供企业级中后台管理系统的全栈解决方案,提供超多业务组件,简洁美观的后台页面,支持23类数据组件,多种数据源支持,严密的安全策略,压缩研发周期,降低研发成本。

注:我不是代码生成器,代码生成器并非后台开发的最优解。代码生成器的本质还是生成繁琐的后台代码,一旦修改后期生成的代码很难合并,虽然减轻了一部分工作,可解决方式并非最佳。

特性 | Features

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

Erupt一个通用后台管理框架,据说有 超低代码量、 零前端代码零 CURD操作无需建表纯Java注解开发等特色,号称三分钟就可以搭建一个完整的后台管理系统。

额~ 听着好像还挺流批的,到底是不是有这么魔幻,咱们一起用起来感受下。

首先来搭建一下环境,目前Erupt支持Java版本1.8.0及以上、Spring Boot版本2.0及其以上。

搭建easy

pom.xml引入必要的jar

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--用户权限管理-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-upms</artifactId>
            <version>1.6.7</version>
        </dependency>
        <!--接口数据安全-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-security</artifactId>
            <version>1.6.7</version>
        </dependency>
        <!--后台WEB界面-->
        <dependency>
            <groupId>xyz.erupt</groupId>
            <artifactId>erupt-web</artifactId>
            <version>1.6.7</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>compile</scope>
        </dependency>
    </dependencies>

application.yml 文件只要简单配置数据源就好,提前准备个数据库。

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/erupt?characterEncoding=UTF8&allowMultiQueries=true        
    username: root
    password: 123456
  jpa:
    show-sql: true
    generate-ddl: true
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    database: mysql
  profiles:
    active: dev
  mail:
    username: xxxx@qq.com
    password: xxxxxxx
    host: smtp.qq.com
    properties:
      mail.smtp.ssl.auth: true
      mail.smtp.ssl.enable: true
      mail.smtp.ssl.required: true
server:
  port: 8888

其实到这Erupt的环境就搭建完了,额~ ,这就完了?

咱们什么也没干,项目是个空壳子,一行代码也没写,好像连个表也没建啊!

图片

别着急咱们先启动下项目,看到控制台打印出很多建表语句和插入语句,这是因为Erupt框架底层应用JPA持久化,预置创建了一些系统表和数据。

图片

注意Erupt预置表只会随项目第一次启动构建一次,如果想重新创建,需删除.Erupt文件(一般在项目的工作空间内),获取文件位置方式

System.getProperty("user.dir")

再看数据库里创建了16张系统表,其中e_upms_user表是用户表,默认只有一个管理员账号,用户名、密码都是erupt

图片

紧接着我们访问http://127.0.0.1:8888/,看一下是个什么效果,竟然有个完整的登录页面。

图片

用上边的用户名、密码直接登录,erupt已经预先实现了完整的权限控等功能,而到这我们几乎是没写过什么代码的,都是框架封装好了的,菜单类数据全部从数据库动态获取,一个基础的后台管理系统就搭建完了,有点哇塞。

图片

有趣的页面

那么问题来了?想要自定义页面怎么办?

开篇我们就说过erupt是零前端代码,全部基于Java注解开发的,接下来用Java注解写个简单页面体验下。

erupt有两个核心注解@Erupt@EruptField

  • @Erupt注解修饰类,代表定义一个页面

  • @EruptField注解修饰字段,代表页面上显示的字段名

  • @Power注解控制是否操作按钮,增、删、改、查、导入、导出等

  • @Search注解表示字段为搜索条件

  • @Table注解表示页面取数据对应的表,如果不设置,页面第一次初始化的时候,会根据类字段值自动创建一张和类名一致的表名。

注解类型比较多,不一一列举了,更多的自己到官网瞅:https://www.erupt.xyz

下边我们定义一个Student类,加上@Erupt@EruptField注解,这样页面和元素就算写完了,是不是有点颠覆认知。

/*
 *  @Erupt注解修饰在类上,@EruptField注解修饰在字段上
 *  其他注解均为Jpa注解
 */
@Getter
@Setter
@Erupt(name = "学生表",
        power = @Power(importable = true, export = true)
)
@Entity
//@Table(name = "t_student")
public class Student extends BaseModel {

    @EruptField(
            views = @View(title = "学生姓名"),
            edit = @Edit(title = "学生姓名", notNull = true, search = @Search(vague = true))
    )
    private String studentName;

    @EruptField(
            views = @View(title = "所属班级"),
            edit = @Edit(title = "所属班级", notNull = true)
    )
    private String studentClass;

    @EruptField(
            views = @View(title = "学生年龄"),
            edit = @Edit(title = "学生年龄", notNull = true)
    )
    private String studentAge;

    @Lob
    @EruptField(
            views = @View(title = "学生性别"),
            edit = @Edit(title = "学生性别", notNull = true)
    )
    private String studentSex;

    @EruptField(
            views = @View(title = "考核状态"),
            edit = @Edit(title = "考核状态", notNull = true, boolType = @BoolType(trueText = "通过", falseText = "挂科"), search = @Search)
    )
    private Boolean status;
}

但此时新创建的页面不会显示出来,还需要我们手动做一个映射关系,在菜单维护中自定义个菜单,类型值一定要为新建的 类名 Student

图片

保存刷新后会看到我们的新页面出现了,而且页面的功能很完整,基础操作、查询、导入、导出功能都自动实现了。

图片

页面新增一个学生信息,对应的Student表也多了条记录,而这个持久化的过程完全由框架来做。

图片

尽管Erupt 框架对前后端代码做了深度封装,但它提供了丰富灵活的自定义接口,来满足我们的个性化需求。

比如我们在录入新学生信息时,希望屏蔽名字为张三的同学,可以对页面按钮功能做代理dataProxy,实现自定义的逻辑,对哪个按钮代理就实现对应方法即可,如beforeAddafterAdd是对新增按钮的代理。

@Getter
@Setter
@Erupt(name = "学生表",dataProxy = {StudentDataProxy.class},
        power = @Power(importable = true, export = true)
)
@Entity
//@Table(name = "t_student")
public class Student extends BaseModel {

}
public class StudentDataProxy implements DataProxy<Student> {

    @Override
    public void beforeAdd(Student student) {
        //后台字段校验
        if ("张三".equals(student.getStudentName())) {
            throw new EruptApiErrorTip("名称禁止为张三!");
        }
    }

    @Override
    public void afterAdd(Student student) {

    }
    @Override
    public void afterUpdate(Student student) {

    }

    @Override
    public void afterDelete(Student student) {
    }
 }

当我们在页面录入名字为张三的同学时,成功屏蔽。其他类似的功能还有很多,这里就不一一举例了,看文档看文档~

图片

如果我们想要按传统的方式开发接口,不用担心会和Erupt的页面生成规则有冲突,丝毫不会受影响。而且Erupt内部集成了JPA,提供了现成的dao接口,只要调用对应API即可上手开发。

图片

如果你不想手写Java代码也没关系,Erupt还提供了代码生成器,自定义Java类名和字段名,可以生成代码,直接copy就行了。

图片

图片

说到这我只介绍了Erupt一丢丢的基础特性,主要是想让小伙伴知道有这么个敏捷利器。

不仅如此它还支持丰富的数据类型,内置了像定时任务管理多表联合查询前后端分离部署接口权限操作记录多数据源邮件系统黑白名单等等很多实用功能,都直接调用API就可以用。

图片

说在后边

Erupt 框架的优点是显而易见的,快捷、高效、上手容易,对新手相当的友好,但在实际生产环境中我只是用它来做一些配置字典类的数据管理。

因为它的深度封装虽然让开发变的简单高效,可对于业务相对复杂、高度定制的系统来说,Erupt 框架显得力不从心,更关键的一点,它的社区并不算特别活跃,毕竟是个小众框架。

不过,技术从来都是服务于业务的,如果你的业务与Erupt的气质相匹配,别犹豫,用它!

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Java 后台管理系统的第一步,就是选择一个合适的框架。常见的 Java 后台管理系统框架有 Spring Boot、Spring MVC、Struts2 等。这里我们以 Spring Boot 为例进行框架初步搭建。 Spring Boot 是 Spring Framework 的一种快速开发框架,它能够帮助程序员快速构建基于 Spring 的应用程序。Spring Boot 在很多方面都简化了 Spring 应用程序的开发,使得开发者可以更容易地使用 Spring 框架来构建 Web 应用程序。 在开始搭建 Spring Boot 后台管理系统之前,我们需要先安装 JDK 和 Maven。安装完 JDK 和 Maven 后,我们可以使用以下命令来检查是否安装成功: ``` java -version mvn -v ``` 接下来,我们可以使用 Maven 创建一个 Spring Boot 项目。打开命令行窗口,进入到你想创建项目的目录下,然后执行以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 执行完该命令后,Maven 将会在当前目录下创建一个名为 myproject 的项目。接下来,我们需要在 pom.xml 文件中添加 Spring Boot 的依赖: ```xml <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> ``` 这里我们添加了两个依赖:spring-boot-starter-web 和 spring-boot-starter-thymeleaf。前者是 Spring Boot 的 Web 模块,用于创建 Web 应用程序;后者是 Spring Boot 的 Thymeleaf 模块,用于创建 HTML 模板。 接下来,我们可以添加一个简单的控制器来测试一下项目是否能够正常运行。创建一个名为 HomeController 的控制器: ```java @Controller public class HomeController { @GetMapping("/") public String home(Model model) { model.addAttribute("message", "Hello, World!"); return "home"; } } ``` 这里我们使用了 @Controller 注解来声明 HomeController 类,并在 home() 方法上使用了 @GetMapping 注解来设置该方法的路由为 "/"。方法的逻辑很简单,只是将一个名为 message 的属性设置为 "Hello, World!" 并返回 home 字符串。 接下来,我们需要创建一个名为 home.html 的 HTML 模板文件,该文件将会被 Thymeleaf 模块用于渲染页面。在 src/main/resources/templates 目录下创建 home.html 文件: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Home Page</title> </head> <body> <h1 th:text="${message}"></h1> </body> </html> ``` 这里我们使用了 Thymeleaf 的表达式语言来渲染 message 属性。接下来,我们启动 Spring Boot 应用程序: ```java @SpringBootApplication public class MyProjectApplication { public static void main(String[] args) { SpringApplication.run(MyProjectApplication.class, args); } } ``` 这里我们使用了 @SpringBootApplication 注解来声明 MyProjectApplication 类,并在 main() 方法中使用 SpringApplication.run() 方法来启动应用程序。执行 main() 方法后,我们可以在浏览器中访问 http://localhost:8080/ 来查看项目是否能够正常运行。 至此,我们已经完成了 Java 后台管理系统的框架初步搭建。接下来,我们可以根据项目需求来添加更多的功能和模块,例如数据库访问、安全认证等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值