创建Spring Boot项目
Maven依赖
Spring Boot版本为 2.7.10,erupt版本为 1.12.14
erupt版本要与Spring Boot版本适配,3.x.x版本Spring Boot暂不适用说是
<properties>
<erupt.version>1.12.14</erupt.version>
</properties>
<dependencies>
<!--tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--test测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--MySql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
<scope>runtime</scope>
</dependency>
<!--核心管理模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-admin</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--后台WEB界面-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-web</artifactId>
<version>${erupt.version}</version>
</dependency>
<!-- ****** 以下模块不需要可以去掉 ****** -->
<!--erupt-cloud 云节点分布式控制模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-cloud-server</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--任务管理模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-job</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--代码生成器模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-generator</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--服务监控模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-monitor</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--在线接口开发-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-magic-api</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--自定义页面模块-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-tpl</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--element-ui-->
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-tpl-ui.element-ui</artifactId>
<version>${erupt.version}</version>
</dependency>
<!--velocity-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
xxxApplication启动类添加注解
import org.springframework.boot.autoconfigure.domain.EntityScan;
import xyz.erupt.core.annotation.EruptScan;
@EruptScan
@EntityScan
main方法中加入下列代码,启动后自动打开指定页面
try {
System.setProperty("java.awt.headless", "false");
Desktop.getDesktop().browse(new URI("http://localhost:8088"));
} catch (Exception ignore) {
}
yml参数配置
server:
port: 8081
# 启用 gzip 压缩
compression:
mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
enabled: true
error:
includeException: true
includeStacktrace: ALWAYS
includeMessage: ALWAYS
spring:
#当 erupt.redisSession 为 true 时必须配置此项!
redis:
database: 0
timeout: 10000
host: 127.0.0.1
datasource:
url: jdbc:mysql://127.0.0.1:3306/erupt?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: ****
jpa:
show-sql: false
generate-ddl: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
database: mysql
properties:
hibernate:
format_sql: false
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
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
profiles:
active: dev
#避免依赖循环引用
# main:
# allow-circular-references: true
erupt-app:
# 登录失败几次,需要验证码
verifyCodeCount: 2
# 是否开启水印,1.12.0 及以上版本支持
water-mark: true
# 登录失败几次出现验证码,值为0时表示一直需要登录验证码
verify-code-count: 2
# 登录密码是否加密传输,特殊场景如:LDAP登录可关闭该功能获取密码明文
pwd-transfer-encrypt: true
# 是否开启密码重置功能,关闭后前端会屏蔽所有重置密码的入口适用于 ldap 等场景,1.12.7 及以上版本支持
reset-pwd: true
# 多语言配置
locales: [
"zh-CN", // 简体中文
"zh-TW", // 繁体中文
"en-US", // English
"fr-FR", // En français
"ja-JP", // 日本語
"ko-KR", // 한국어
"ru-RU", // русск
"es-ES" // español
]
# 自定义登录页路径,1.10.6 及以上版本支持,支持http网络路径
# login-page-path: /customer-login.html
erupt:
# 是否开启csrf防御
csrf-inspect: true
# 开启redis方式存储session,默认false,开启后需在配置文件中添加redis配置(同 Spring Boot)
redis-session: false
# redis session是否自动续期,1.10.8及以上版本支持
redis-session-refresh: false
# 附件上传存储路径, 默认路径为:/opt/erupt-attachment
upload-path: D:/erupt/annex
# 是否保留上传文件原始名称
keep-upload-file-name: false
# 项目初始化方式,NONE 不执行初始化代码、EVERY 每次启动都进行初始化、FILE 通过标识文件判断是否需要初始化
init-method-enum: file
# 默认语言,1.12.3 及以上版本支持
default-locales: zh-CN
# 是否开启任务调度(导入erupt-job时有效)
job.enable: true
# 是否开启日志采集,开启后可在系统日志中查看实时日志 1.12.14 及以上版本支持
log-track: true
# 日志采集最大暂存行数 1.12.14 及以上版本支持
log-track-cache-size: 1000
# 是否记录操作日志,默认true,该功能开启后可在【系统管理 → 操作日志】中查看操作日志
security:
record-operate-log: true
upms:
# 登录 session 时长(redisSession为true时有效)
# redisSession 为 false 时控制有效期的方法:server.servlet.session.timeout
expire-time-by-login: 60
# 严格的角色菜单策略,如果非管理员用户拥有“角色管理权限”则仅能编辑已有权限的角色菜单
strict-role-menu-legal: false
magic-api:
web: /magic/web
# 接口配置文件存放路径
resource.location: D:/erupt/magic-script
show-url: false
数据库配置
根据所用数据库类型选择MySQL、SQLServer等进行配置
建立一个数据库(erupt),其他名也行,暂时不用建表,项目启动会自动建立多个基础表
首页配置(home.html)
手动创建,位置:/resources/public/home.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>home</title>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
</head>
<style>
body {
/* 设置背景图片 */
background-image: url('login-img-BlackSilk.jpg');
/* 背景图片覆盖整个元素 */
background-size: cover;
/* 背景图片不重复 */
background-repeat: no-repeat;
/* 背景图片居中显示 */
background-position: center;
/* 可选:设置背景图片固定,滚动页面时不移动 */
background-attachment: fixed;
/* 可选:设置边距,根据需要调整 */
margin: 0;
padding: 0;
/* 确保整个页面都有背景图片 */
height: 100vh; /* 视口高度 */
width: 100vw; /* 视口宽度,但通常不需要设置,因为body默认就是100%宽度 */
}
</style>
<body>
</body>
</html>
前端配置(app.js)
手动创建,位置:/resources/public/app.js
window.eruptSiteConfig = {
//erupt接口地址,在前后端分离时指定
domain: "",
//附件地址,一般情况下不需要指定,如果自定义对象存储空间,则需在此指定附件资源访问地址
fileDomain: "",
//登录页中间标题
title: "風華絕代",
//登录页中间标题描述
desc: "風華絕代-Leslie",
//是否展示版权信息
copyright: true,
//自定义版权内容,1.12.8及以上版本支持,值可以是方法也可以是字符串
copyrightTxt: function() {
return "風華絕代-Cheung Kowk Wing"
},
//高德地图 api key,使用地图组件须指定此属性,amapKey获取地址:https://lbs.amap.com (服务平台为:Web端(JS API))
amapKey: "xxxx",
//高德地图 SecurityJsCode
amapSecurityJsCode: "xxxxx",
//登录页logo路径
logoPath: "log-Leslie.jpg",
//登录后左上角logo旁边的文字
logoText: "風華絕代",
//注册页地址,会在登录页面增加一个链接 (仅是一个链接,需要自定义实际样式)
registerPage: "",
//自定义导航栏按钮,配置后将会出现在页面右上角
r_tools: [{
text: "自定义功能按钮",
icon: "fa-eercast",
mobileHidden: true,
click: function (event) {
alert("Function button");
}
}],
//登录成功事件 1.12.3 及以上版本移动至window.eruptEvent中声明
login: function(user){
},
//注销事件 1.12.3 及以上版本移动至window.eruptEvent中声明
logout: function(user){
}
};
//路由回调函数
window.eruptRouterEvent = {
//key表示要监听的路由切换地址,为url hash地址最后一段
//例如:http://www.erupt.xyz:9999/#/build/table/demo中demo为回调key
demo: {
//路由载入事件
load: function (e) {
},
//路由退出事件
unload: function (e) {
}
},
//$ 为全路径通配符,在任何路由切换时都会执行load与unload事件
$: {
load: function (e) {
},
unload: function (e) {
}
}
};
//erupt生命周期函数
window.eruptEvent = {
//页面加载完成后回调
startup: function () {
},
//登录成功
login: function(user){
},
//注销事件
logout: function(user){
}
}
前端样式(app.css)
手动创建,位置:/resources/public/app.css
/* 例:修改登录页样式 */
layout-passport > .container {
background-position: center !important;
background-repeat: repeat !important;
background-size: cover !important;
background-color: #fff !important;
background-image: url(login-img-BlackSilk.jpg) !important;
/*background-image: url(https://www.erupt.xyz/demo/login-bg.svg) !important;*/
}
启动项目
访问地址:localhost:8081
默认账号:erupt
默认密码:erupt
登录
默认有以下菜单栏