Erupt 项目搭建

news2024/11/15 17:38:59

创建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

登录

默认有以下菜单栏

新建菜单

新建下级菜单(表格视图)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2039239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全场景——(三)USB开发基础(1)

文章目录 一、USB 系统硬件框架和软件框架1.1 实验现象1.2 硬件框架1.3 软件框架 二、USB 电气信号2.1 USB 设备状态切换图2.2 硬件线路2.3 电子信号2.4 低速/全速信号电平2.5 高速信号电平2.6 设备连接与断开2.6.1 连接2.6.2 断开 2.7 复位2.8 设备速率识别2.8.1 低速/全速2.8…

【STM32】入门教程(完整版汇总非常详细)

本教程参考b站江协科技STM32入门教程&#xff0c;视频链接&#xff1a; 哔哩哔哩江协科技STM32入门教程https://www.bilibili.com/video/BV1th411z7sn/?spm_id_from333.337.search-card.all.click “唯一能持久的竞争优势是胜过竞争对手的学习能力。”——盖亚斯 希望对您有帮…

栈的定义及基本操作

栈的定义和特点 栈是一个特殊的线性表&#xff0c;是限定在一端进行插入和删除操作的线性表&#xff1b; 插入到栈顶称作入栈&#xff08;PUSH) 从栈顶删除最后一个元素称作出栈 &#xff08;POP&#xff09; 图1 栈的表示 假设三个元素a,b,c入栈顺序为a&#xf…

【洛谷/水滴题解】[NOIP2005 普及组] 采药

1.难度&#xff1a;普及- 2.类型&#xff1a;dp&#xff0c;01背包 3.描述&#xff0c;输入输出格式&#xff0c;样例&#xff1a; 4.AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int t,m; int dp[1005]; int main() {ios::sync_with_stdio(false…

MySQL第8讲--DCL(数据控制语言)的基本操作

文章目录 前言DCL(数据控制语言)用户管理查询用户创建用户修改用户密码删除用户 权限控制查询权限授予权限撤销权限 前言 在第六讲MySQL第6讲–DQL(数据查询语言)的基本操作之基本和条件查询和第七讲MySQL第7讲–DQL(数据查询语言)的基本操作中我们讲述了DQL中的&#xff0c;基…

高性能云桌面在工业设计中的应用,百度智能云云桌面给出答案

在之前的文章中我们讲到&#xff0c;边缘云桌面可以通过在距离用户较近的边缘节点上直接处理数据和应用&#xff0c;减少了数据传输时间&#xff0c;降低延迟&#xff0c;提高数据处理的速度和安全性。用户可以通过任何设备&#xff0c;随时随地访问自己的桌面环境&#xff0c;…

每日OJ_牛客HJ59 找出字符串中第一个只出现一次的字符

目录 牛客HJ59 找出字符串中第一个只出现一次的字符 解析代码 牛客HJ59 找出字符串中第一个只出现一次的字符 找出字符串中第一个只出现一次的字符_牛客题霸_牛客网 解析代码 可以用一个数组的每一个位置表示对应的位置。对应的字符位置存放字符出现的次数。统计完之后&…

【云备份】学习bundle库

文章目录 1.认识bundle⽂件压缩库bundle库实现⽂件压缩bundle实现文件解压缩 1.认识bundle⽂件压缩库 BundleBundle 是一个嵌入式压缩库&#xff0c;支持23种压缩算法和2种存档格式。使用的时候只需要加入两个文件 bundle.h 和 bundle.cpp 即可。 showcase #include <cass…

安全入门day.02

一、环境部署 1、windows版本 2、Linux版本 二、WEB应用组成角色名词 1、开发语言 2、程序源码 3、中间件容器 4、数据库 5、服务器操作系统 6、第三方软件 三、WEB应用安全漏洞分类 1、SQL注入 2、文件安全 3、RCE执行 4、XSS跨站 5、CSRF/SSRF/CRLF 6、反序列…

基于RK3568 Android11 移除长按电源按键弹窗的对话框中的 [关机] 和 [紧急呼救] 选项(详细分析)

一般来说&#xff0c;与Android按键窗口事件相关的基本是与frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 这个文件有关。   因此先打开与输入相关的日志&#xff0c;如下&#xff1a;   然后重新编译烧录后查看打印的日志可以看…

Matcha-Tts:一种基于条件流匹配的快速Tts架构笔记

MATCHA-TTS: A FAST TTS ARCHITECTURE WITH CONDITIONAL FLOW MATCHING笔记 提出问题&#xff1a; 1、合成速度慢 提出方法&#xff1a; 首先&#xff0c;提出了一种改进的编码器-解码器TTS架构&#xff0c;在解码器中使用1D CNN和Transformer的组合。这样减少了内存消耗&am…

使用tailwindcss轻松实现移动端rem适配

本示例节选自小卷全栈开发实战系列的《Vue3实战》。演示如何用tailwindcss所支持的rem体系轻松实现一个仿b站移动端头部导航栏rem适配。 友情声明 学习分享不易&#xff0c;如果小伙伴觉得有帮助&#xff0c;点赞支持下。满30赞&#xff0c;将随文附赠录屏讲解&#xff0c;感谢…

linux shell 脚本入门到实战

目录 一、shell入门简介1.1什么是shell1.2shell编程注意事项1.3第一个shell脚本helloworld 二、shell环境变量讲解2.1shell变量详解2.2shell系统变量介绍2.3shell环境变量介绍2.4shell用户环境变量介绍2.4.1自定义shell环境变量 三、shell编程流程控制语句3.1if条件语句介绍3.1…

TikTok出现“无网络连接”,具体原因与解决方法

“No network connection”&#xff01;当你信心满满下载并准备开始运营TikTok时&#xff0c;屏幕上如果提示“无互联网连接”非常难办。有很多因素可能会导致此问题&#xff0c;包括网络连接无效、应用程序故障等。接下来将为你盘点主要的原因与解决方法。 一、无网络连接的原…

C语言进阶(9)

程序的执行时有两种环境&#xff0c;一种是翻译环境&#xff0c;另一种是执行环境。程序先经过编译成为obj的后缀的文件&#xff0c;然后将文件和链接库链接起来&#xff0c;然后将形成可执行程序&#xff0c;前者时翻译环境&#xff0c;后者时执行环境。(链接库就是库函数的所…

【ComfyUI】Error occurred when executing WD14Tagger|pysssss :

解决ComfyUI的ComfyUI-WD14-Tagger插件运行报错问题 参考ONNX 运行时的 CUDA 和 cuDNN 加载错误 期刊 #56 pythongosssss/ComfyUI-WD14-标记器 (github.com) 我尝试了以下操作 转到 启动器&#xff0c; 启动CMD&#xff0c; 按回车键&#xff1a; 粘贴。卸载两个包 pip unin…

Linux之进程间通信(下)

目录 命名管道 命名管道的创建 匿名管道和命名管道的区别 命名管道的代码实现 共享内存 创建共享内存 关联共享内存 去关联共享内存 删除共享内存 共享内存特点 共享内存代码实现 IPC资源总结 命名管道 上期我们学习了匿名管道&#xff0c;匿名管道本质就是一个…

EcoVadis评估对可持续发展具体表现在哪些方面

Ecovadis认证是一项备受推崇的环保和社会责任认证&#xff0c;其优势不仅在于其权威性和公信力&#xff0c;更在于其全面而深入的评估标准&#xff0c;这个认证体系将企业划分为不同的等级&#xff0c;从入门级的银牌到最高级别的白金级&#xff0c;每个等级都有相应的评估标准…

Selenium + Python 自动化测试14(发送报告)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了使用HTMLTestRunner 生成HTML报告的方法。 本篇文章我们接着讲生成HTML报告是否可以自动邮件发送出去&#xff0c;提高我们测试报告的及时性&#xff0c;方便…

PCB入门笔记—绘制一个只有两个排针的PCB全流程记录—立创EDA专业版

PCB绘制入门&#x1f680; 硕士毕业之后准备进入博士阶段&#xff0c;本科阶段做的硬件&#xff0c;硕士阶段做的算法&#xff0c;然后博士阶段又要做回硬件了&#xff0c;因此也是打算补一补PCB相关的内容和知识&#xff0c;毕竟做控制的话&#xff0c;之后这也是不能躲开的必…