再见前端!纯Java撸个管理系统,这框架用起来贼爽!(1)

/**

  • Created by macro on 2021/4/13.

*/

@Configuration

@ComponentScan({“xyz.erupt”,“com.macro.mall.tiny”})

@EntityScan({“xyz.erupt”,“com.macro.mall.tiny”})

@EruptScan({“xyz.erupt”,“com.macro.mall.tiny”})

public class EruptConfig {

}

复制代码

  • 在MySQL中创建erupt数据库,之后使用启动类运行该项目,在erupt数据库中会自动创建如下表;

image

  • 项目启动成功后,可以直接访登录页,默认账号密码erupt:erupt,项目访问地址:http://localhost:8080/

  • 登录成功后会跳转到项目主页,我们可以发现没有写一行前端代码,却拥有了完整的权限管理和字典管理功能,是不是很棒!

实现单表 CRUD

使用核心注解@Erupt@EruptField定义一个实体类即可快速完成CRUD操作,让我们以商品品牌管理为例试试吧。

  • 不需要Controller、Service、Dao,仅仅一个实体类即可完成CRUD,首先我们创建实体类PmsBrand

@Erupt(name = “商品品牌”)

@Table(name = “pms_brand”)

@Entity

public class PmsBrand {

@Id

@GeneratedValue(generator = “generator”)

@GenericGenerator(name = “generator”, strategy = “native”)

@Column(name = “id”)

@EruptField

private Long id;

@EruptField(

views = @View(title = “品牌名称”),

edit = @Edit(title = “品牌名称”,notNull=true,search = @Search(vague = true))

)

private String name;

@EruptField(

views = @View(title = “品牌首字母”),

edit = @Edit(title = “品牌首字母”,notNull=true)

)

private String firstLetter;

@EruptField(

views = @View(title = “品牌LOGO”),

edit = @Edit(title = “品牌LOGO”, type = EditType.ATTACHMENT,

attachmentType = @AttachmentType(type = AttachmentType.Type.IMAGE))

)

private String logo;

@EruptField(

views = @View(title = “品牌专区大图”),

edit = @Edit(title = “品牌专区大图”, type = EditType.ATTACHMENT,

attachmentType = @AttachmentType(type = AttachmentType.Type.IMAGE))

)

private String bigPic;

@EruptField(

views = @View(title = “品牌故事”),

edit = @Edit(title = “品牌故事”)

)

private String brandStory;

@EruptField(

views = @View(title = “排序”),

edit = @Edit(title = “排序”)

)

private Integer sort;

@EruptField(

views = @View(title = “是否显示”),

edit = @Edit(title = “是否显示”)

)

private Boolean showStatus;

@EruptField(

views = @View(title = “品牌制造商”),

edit = @Edit(title = “品牌制造商”)

)

private Boolean factoryStatus;

private Integer productCount;

private Integer productCommentCount;

}

复制代码

  • 创建成功后重启项目,在菜单维护中添加一个叫商品的一级菜单;

  • 然后再添加一个叫品牌管理的二级菜单,注意选择好菜单类型上级菜单,输入类型值为实体类的类名称PmsBrand

  • 菜单添加成功后,刷新页面,完整的品牌管理功能就出现了,来试下新增;

  • 再看下查询列表页面,可以发现我们通过@Edit注解,将实体类的字段转换成了不同的输入控件,比如文本框、图片上传框、单选框和数值框。

核心注解说明

几个Erupt的核心注解,对照PmsBrand中的代码学习即可!

@Erupt
  • name:功能名称

  • desc:功能描述

@EruptField
  • views:表格展示配置

  • edit:编辑项配置

  • sort:前端展示顺序,数字越小越靠前

@View
  • title:表格列名称

  • desc:表格列描述

  • type:数据展示形式,默认为AUTO,可以根据属性类型自行推断

  • show:是否显示

@Edit
  • title:表格列名称

  • desc:表格列描述

  • type:编辑类型,默认为AUTO,可以根据属性类型自行推断

  • show:是否显示

  • notNull:是否为必填项

  • search:是否支持搜索,search = @Search(vague = true)会启用高级查询策略

扩展模块


当然Erupt的功能远不止于此,还集成了很多实用的系统功能,包括定时任务、代码生成器、系统监控及NoSQL支持等。

定时任务erupt-job

通过定时任务功能,我们可以在代码中定义好定时任务,然后在图形化界面中操作任务,有点之前讲过的PowerJob 的感觉!

  • 首先我们需要在pom.xml中添加erupt-job相关依赖;

xyz.erupt

erupt-job

${erupt.version}

复制代码

  • 之后在application.yml中添加邮件配置(否则启动会报错);

spring:

mail:

username: xxxxxx@qq.com

password: 123456

host: smtp.exmail.qq.com

port: 465

properties:

mail.smtp.ssl.auth: true

mail.smtp.ssl.enable: true

mail.smtp.ssl.required: true

复制代码

  • 之后创建一个定时任务实现类JobHandlerImpl,在exec方法中添加定时任务执行代码;

/**

  • Created by macro on 2021/4/13.

*/

@Service

@Slf4j

public class JobHandlerImpl implements EruptJobHandler {

@Override

public String exec(String code, String param) throws Exception {

log.info(“定时任务已经执行,code:{},param:{}”,code,param);

return “success”;

}

}

复制代码

  • 之后重新启动应用,在任务维护中添加一个定时任务,每5秒执行一次;

  • 添加成功后,定时任务开始执行,点击任务列表中的日志按钮即可查看执行日志。

代码生成器erupt-generator

如果你觉得手写实体类比较麻烦的话,还可以用用Erupt中的代码生成器。

  • pom.xml中添加erupt-generator相关依赖;

xyz.erupt

erupt-generator

${erupt.version}

复制代码

  • 代码生成菜单中我们可以像在Navicat中一样,直接添加表和字段,从而生成实体类代码;

  • 我们在添加过程中可以发现,Erupt支持的编辑类型还挺多的,多达30种;

  • 添加成功后,点击列表项的代码预览按钮可以直接生成代码,复制到自己项目下即可。

系统监控erupt-monitor

通过使用Erupt的系统监控功能,我们可以查看服务器的配置、Redis的缓存使用情况和在线用户信息。

  • pom.xml中添加erupt-monitor相关依赖;

xyz.erupt

erupt-monitor

${erupt.version}

复制代码

  • 由于需要使用到Redis,所以要在application.yml中添加Redis配置,并开启Session的Redis存储功能;

spring:

redis:

host: localhost # Redis服务器地址

database: 1 # Redis数据库索引(默认为0)

port: 6379 # Redis服务器连接端口

password: 123456 # Redis服务器连接密码(默认为空)

timeout: 3000ms # 连接超时时间

erupt:

开启redis方式存储session,默认false,开启后需在配置文件中添加redis配置

redisSession: true

复制代码

  • 通过服务监控菜单,可以查看到服务器的CPU、内存和Java虚拟机信息;

  • 通过缓存监控菜单,可以查看到Redis信息、命令统计和Redis Key统计;

  • 通过在线用户菜单,可以查看到在线用户信息,还可以让用户强行退出!

NoSQL数据源erupt-mongodb

Erupt支持多种数据源,包括:MySQL、Oracle、PostgreSQL、H2,甚至支持 MongoDB。下面我们来体验下MongoDB的支持功能。

  • pom.xml中添加erupt-mongodb相关依赖;

xyz.erupt

erupt-mongodb

${erupt.version}

复制代码

  • 由于需要使用到MongoDB,所以要在application.yml中添加MongoDB配置;

spring:

data:

mongodb:

host: localhost # mongodb的连接地址

port: 27017 # mongodb的连接端口号

database: erupt # mongodb的连接的数据库

复制代码

  • 以一个简化版的商品管理为例,还是熟悉的套路,添加一个PmsProduct实体类;

/**

  • Created by macro on 2021/4/13.

*/

@EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS) //此注解表示使用MongoDB来存储数据

@Document(collection = “product”)

@Erupt(

name = “商品管理”,

orderBy = “sort”

)

public class PmsProduct {

@Id

@EruptField

private String id;

@EruptField(

views = @View(title = “商品名称”, sortable = true),

edit = @Edit(title = “商品名称”, search = @Search(vague = true))

)

private String name;

@EruptField(

views = @View(title = “副标题”, sortable = true),

edit = @Edit(title = “副标题”, search = @Search(vague = true))

)

private String subTitle;

@EruptField(

views = @View(title = “价格”, sortable = true),

edit = @Edit(title = “价格”)

)

private Double price;

@EruptField(

views = @View(title = “商品图片”),
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门免费获取

者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-CHyqY0io-1713694690550)]

[外链图片转存中…(img-9kwvlSfV-1713694690551)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-y6qj9dwk-1713694690551)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-GDSqc85v-1713694690551)]

更多面试题

**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等

资料获取方式:点击蓝色传送门免费获取

[外链图片转存中…(img-YgALqUj5-1713694690552)]

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值