8.0.15
复制代码
- 修改项目的
application.yml
文件,添加数据源和JPA配置;
spring:
datasource:
url: jdbc:mysql://localhost:3306/erupt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
jpa:
show-sql: true
generate-ddl: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
database: mysql
复制代码
- 在项目的
resources
目录下创建如下配置文件(拷贝mall-tiny-erupt
中的即可);
- 添加Erupt的Java配置类
EruptConfig
,以启动类MallTinyApplication
的包为准,配置包扫码路径;
/**
- 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
数据库中会自动创建如下表;
- 项目启动成功后,可以直接访登录页,默认账号密码
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”)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/703b4427ab735e5a3601dcd242f91300.jpeg)
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取
,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-UP95nvPs-1712301443686)]
[外链图片转存中…(img-G18UbUoY-1712301443687)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-Ya12ct76-1712301443687)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/703b4427ab735e5a3601dcd242f91300.jpeg)
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取
[外链图片转存中…(img-VlHK7bGV-1712301443687)]