单体版本

简介: JeecgBoot单体版基于Spring Boot与Vue3,集成MybatisPlus、Redis等技术,支持代码生成、前后端分离开发,提供从环境搭建到菜单授权的完整快速开发流程。

单体版本

一、源码下载
https://github.com/jeecgboot/jeecg-boot
二、技术架构
后端
IDE建议: IDEA (必须安装lombok插件 )
语言:Java 8+ (支持17)
依赖管理:Maven
基础框架:Spring Boot 2.7.18
微服务框架: Spring Cloud Alibaba 2021.0.1.0
持久层框架:MybatisPlus 3.5.3.2
报表工具: JimuReport 1.7.6
安全框架:Apache Shiro 1.12.0,Jwt 3.11.0
微服务技术栈:Spring Cloud Alibaba、Nacos、Gateway、Sentinel、Skywalking
数据库连接池:阿里巴巴Druid 1.1.22
日志打印:logback
缓存:Redis
其他:autopoi, fastjson,poi,Swagger-ui,quartz, lombok(简化代码)等。
默认数据库脚本:MySQL5.7+
其他数据库,需要自己转
前端
前端IDE建议:WebStorm、Vscode
采用 Vue3.0+TypeScript+Vite+Ant-Design-Vue等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能
最新技术栈:Vue3.0 + TypeScript + Vite5 + ant-design-vue4 + pinia + echarts + unocss + vxe-table + qiankun + es6
依赖管理:node、npm、pnpm

注:node需要20版本的,其他版本可能会导致运行报错

开发可能需要用到的软件以及环境:百度网盘 请输入提取码 (baidu.com)

三、IDEA启动项目
采用IDEA启动前后端项目
前提: 后台开发环境前端开发环境 都已经安搭建完成。
一、启动JAVA项目 jeecg-boot
1. 初始化数据库
要求 mysql5.7+
执行Sql脚本: jeecg-boot/db/jeecgboot-mysql-5.7.sql
脚本作用:会自动创建库jeecg-boot, 并初始化数据 。
启动本地redis
2. 安装Maven依赖

//AENABLEAUTOCONFIQURATION(EXCLUDE=MONGOAUTOCONFIGURATION.CLASSI

PUBLICCLASSJEECGSYSTEMAPPLICATIONEXTENDSSPNINGBOOTSERVLETLN

CONFIAURAHLEAOOLICATIONCONTEXTAPPLICATION=SPRINGAPPLICDTORUEE

错提醒:未集成NONGO报错,可以打开启动类上面的注释EXCLUDE-{MONGOAUTOC

"SWAGGER文挡:LTHTTP://"+IP+":"+PORT+PATH+"/DOC.HTMLLN"

PRINGAPPLICATIONBUILDERCONFIGURE(SPNINGAPPLICATIONBUILDENAPPLICATION)(RETUNN

STNINGIP=INETADDRESS.GETLOCALHOST().GETHOSTADDRESS()

"LOCA]:LTLTHTTP://LOCALHOST:"+PORT+PATH+/LNLT

"EXTERNAL:LTHTTP://"+IP+":"+PORT+PATH+"/LNLT"+

"APPLICATIONJEECG-BOOTISRUNNING!ACCESSURLS:LNLT+

ENYIRONNENTENYAPPLICATIONGETENVRONEI

0,IF0OOOOOSOAOOOOOSNN-O-OECEOAOAOOO-----.OOOO-OOOE

STNINGPATH=OCONVERTUTILS.GETSTRING(ENV.GETPROPERTY("SERVER.

TRINGPOT=ENV.GETPROPERTY(SERVER.PONT)J

IN(STPING[]ARGS)THROWSUNKNOWNHOSTEXCEPTION

CJEECGSYSTEMAPPLICATION

UBLICSTATICVOIDMAIN(STRING[]ARGS)THROWSUNKNOWNHOSTEXCE

---NCNCOWOOOOOOSOSO-COCOEOEOOOSON-N-OEOEOEOEOEOEOEOENE

JEECGSYSTEMAPPLICATIO

GAPP1ICATION.RUN(JEECGSYSTEMAPP1ICATI

JEECGBOOT-BASE-CORE

1JEECGBOOTGITHUBIJEECG-BO

JEECG-SYSTEM-DLZ

RESOURCES

JEECG-SYSTEMAP

@SPRINGBOOTAPPLICATION

PACKAGEORG.JEECG

JEECG-MODULE-DEMO

JEECG-SERVER-CLOUD

.DOCKER-COMPOSE.YML

JEECG-SYSTEMSTA

LLEXTERNALLIBRARIES

CODEGENERATE

,GETPROPENTY"SERVER.SERVLET.CONTEXT-P

PROTECTEDSPRINGAPPLI

JEECG-MODULE-SYSTEM

LJEECG-BOOT-PARENT]F:LGITCODEL1J1

READMEMD

A.GITIGNORE

OSCRATCHESANDCONSOLES

README.MD

MEHM..CNNINPBOOTSERVLETINITIAZ

MPOM.XML

MPOM.XML

.GITATTRIBUTES

JE9

NMPOM.XML

AOVERRIDE

TEST

LICENSE

MA

JVA

6ORG

单体启动类

.GITEE

SRC

4

--------------NR------NT

22Q

GITHUB

IMPORT..

@S1F4J

DB

O@

28

19

5C

23

18

/**

STRINGOORTEER


通过右侧父POM进行install(下载依赖和打包)


3. 修改配置文件
配置文件: jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
数据库配置


redis配置


4. 启动项目
右键执行下面类,启动项目
5. 访问接口文档
二、启动Vue3前端 jeecgboot-vue3
1. 下载前端依赖
执行命令pnpm i 或者双击 pinstall或者使用yarn install


依赖安装成功提示


2. 配置后台接口
修改接口地址 .env.development(可不改)

VITE_PR0XY[[/JEECGBOOT",HTTP://LOCALHOST:8080/JEECG-BOOT

#做前WGIANKUN应用,命名必须以VTTE_APPSUB_开头,JEEEGAPP-1为子应用的项目名称,也是子应用的路由父路径

VITEAPP_SUBJEECGAPP-1//1OCALHOST:8092

#跨域代理,您可以配置多个,请注意,没有换行符

N_URLEHTTP:LOCALHOST:8080/JEECGBOO

这两处改成自己的后台地址

VITE_GLOB_APIURL.PREFIX

VITE_DROP_CONSOLE=FA

#后台接口全路径地址(必填)

VITEGLOBAPIURLE/JEECGBOOT

PRODUCTIONXENV.DEVELOPMENT

VITE_USE_MOCK=TRUE

VITE_GLOB_DOMAIN_URL

控制台不输出

VITEPUBLICPATH=

PRETTIERIGNORE

1JEECGBOOT-VUE3

#后台接口父地址(必填)

ENV.DEVELOPMENT

#是否打开MOCK

#发布路径

GEDITORCONFIG

ENVPRODUCTION

GSTYLELINTIGNORE

OGITIGNORE

OESLINTIGNORE

ODULESLIBRARYROOT

井接口前级

NODEMO

YARNCLEAN

OESLINTRCJS

口项目

.HUSKY

PUBLIC

GITPODYML

NPMRC

TYPES

ENV.TEST

.GITHUB

BULD

.GTTEE

TESTS

3-GITHUBF:

MOCK

:LGITCODE

EENVPRODU

ENV

SRC

O


3.启动前端项目
点击命令 dev 启动项目或者使用npm run dev进行启动


4.访问系统
通过 http://localhost:3100 访问前端项目默认账号密码: admin/123456

注:前端也可采用vscode进行启动看个人喜好。

四、简单的表单代码生成
1.在jeecgboot低代码平台的online表单开发功能处选择新增表单

PP人F金SEF的F会

0本会禁精

中新馆中建

0工8

06国%

店中

电米合行国市

餐种人我物托演

EECGBOETFG

办OM付社

电专中小新业

T大E

华生价E

中大国

心个市地

专米进0中

世0小2

中快1

条页养真

6州

城沪色

中F5

0MR汗

专1O期%

山浙手工

老成第条

G

0重第

电电

PAM

P国9

单开

城事名

九州

中小西

0A

工浙心

出号

生资

2

参中中中告

电地

海车

地车

我字成起


2.输入参数并且添加属性

都:D购共中市1东话

中券萧

海浙风号

宏明明话

中路路

电R室

运话:考9

个恒出定上出心

中3明0

和市

河中41业

天中61

2中66生

世洋为线

1

(4961节

32修电

团小座

西年6

市北

出号


3.在页面属性这里将处理状态的控件类型选择为下拉框

日5车月日2分划

5曲湘艾%

PRPCEEU

期年共扫时分秒

更多配

日期年月日)

事多配置

万杭香梦以香

禁参餐盟

DCP

更多配盟

更多配置

骑博香网

新手查询

再步1F

理伊心

事多配量

管通查网

最年月日)

莫永酸盟

星金询

联参数

营通业询

下社电

更多配酒

销手查询

REB

简博壹询

更多配盟

菁通查询

世平森网

票冬配服

理人

创电人

仓建日1

PDATABY

3TTME

文本电

团电安钻粤2

第海香玛

中中电

D1ME

文本电

更新人

景西个告

生健

区牧养美型

本电

万5

0W长

六品

1炒1

一中楼

120

130

20


4.在校验字段这为处理状态配置含有对应的下拉框内容的表单随后保存

特必油[团宇典T

005.P9

PEPCE.ENS

个性查宾配国(

UUPDATEB

TME

宁典TE

开翰时两

REE.TRY

5VPE

炒瑞人

大中州

创建日均

特电西

的证物

OENETNE

处理快地

DTIMG

9悠1

ROCASTHUS

5亨MDE

西姓人

四名容

西西属行

作建人

CORTEET

内白

风车写性

8

检轮1


5.勾选表单同步数据库并且生成代码

EO.FELD.DELVILSUB

合已西中1卖之类可界四会

请在银心元联限示卡

元S性U值(子

20000602225656

门工店

20200500113411

004-06-20173400

TEEENTETRNE

1MT.RCHE

2004-10794701

量快作V

代动平

中早M

创建0网

R

已5

53

青8节

6

25

伊多


6.选择生成的代码位置,设置好表名,实体类名,跟包名。代码生成位置需要自己能够找到

E:EECGBOOT-MASTERJEECG-BOOTJEECG-MODULE-DEMA

页面代码:O封装表单(BASICFORM)

代码分层样式:

代码生成[AGENCY]

原生表单(A-FORM)

页面风格:

功能说明:代力列

SJS增

JEECGBOOTERP

*实体类名:

包名(小写):

代码生成目录:

经典风格

:业务分层

江单产品明细

日览

开始生成

AGENCY

AGENCY

取消

安钮

表名:

X

DEN


五、生成代码放入前后端
1.代码文件夹讲解
根据生成代码的位置找到你设置好的包名,我这里是jeecg_boot_erp,打开它

2024-08-3016:34

2024-09-1116:32

2024-08-3016:34

2024-08-3016:34

JEECGBOOTERP

2024-08-3016:34

2024-08-3016:34

修改日期

2024-08-3016:34

文件夹

XXLJOB

文件夹

文件夹

文件夹

文件夹

文件夹

CLOUD

文件夹

MOCK

ONLINE

TEST

名称

类型

GPT


其中vue3是前端代码,uniapp是小程序代码,其余的为后端代码,其中vue3内存放着表sql语句

2024-09-1116:32

2024-09-1116:32

2024-09-1116:32

2024-09-1116:32

202409-1116:32

202409-1116:32

CONTROLLER

修改日期

文件夹

UNIAPP

MAPPER

文件夹

文件夹

文件夹

文件夹

文件夹

SERVICE

ENTITY

名称

VUE3

类型

大小


2.后端代码放入
后端代码路径:
jeecgboootmuster\jeecg-boot\jeecg-module-demo\src\main\java\org\jeecg\modules\demo\
在这个路径新建文件夹(我这为willdo)存放后端代码,将前面文件夹中的后端代码全部copy到这个文件夹中

OORGJEECG.MODULES

JEECG-MODULE-DEMO

OCONTROLLER

OREGUESTML

ORESTCONT

ODLQLONG

数据层

XXJOB

PUBLICCL

OAUTHO

业务层

控制层

MAPPER

OWILLDO

OSERVICE

@SLF4J

OGETM

ENTIT

实体类

ODEMO

ONLINE

MOCK

34

AVA

OTEST

COUD

41

0P

GPT

0P

MAIN

29

大火

38

33

30

36

35

32

37

SRC

31

0N

43

39

40




3.前端代码放入
代码路径:src\views\
在views下新建文件夹willdo,将前面vue3文件夹中的内容全部copy进来
注:这里的文件夹不能随意取名,需要打开生成的sql语句看要求

AGENCYLIST.VUE

AGENCY.DATA.TS

AGENCY.API.TS

COMPONENTS

DASHOOARD

SETTINGS

MONITOR

SYSTEM

1/5A4N020

REPORT

ROUTER

VIEWS

WILLDO

DEMO

UTILS

STORE

SYS

STC

TS

TS


如果你想更改到其他目录,请修改SG中COMPONENT字段对应的值

-注意:该页面对应的前台目录为VIEWS/WI11DO文件夹下

INSERRINROSYSPERMISSION(ID,PARENTIDNANE

VALUES(2024082806428000530NULL代代

IEWS>WILLDO>V20240828_1_MENUINSERTAGENCY.SQL

浓/AGENCY/AGENCYLIST'AGENCY/AGENCYLIST',NULL,NU

代办列表

AME,UR1,COMPONENT,COMPONENTNAE,REDIRECT,NENUTYPE


4.重新启动前后端
六、菜单管理与授权
1.菜单配置
重新启动项目后进入到系统管理中的菜单管理选择新增菜单

代办管理

低代码开发

菜单管理

向系统管理

请输入菜单名称

菜单名称

菜单名称

+主页

折叠全部

展开全部

用户管理

新增菜单

主页

任何数据


选择相关配置可以按个人喜好

单LN:ANLT-DEIGNZECEPION-OUTINE

财认筑转地址:青入联认地

NWILDO/MGENGY

F件称0:WILICO-AGENC

打开方式:(园

邦主:

WNILDOYAGENGYLIST

艺单林行

访可热经:

百埃存格山:

海日手:

是百体由芋单:

编蛋荣年

系合路电:

接已/权锁

PRTB:

代力管道

竞单名称:

绝草格电:

公苹举

子菜单


其中的访问路径是需要跟你后端controller中的主路径一致
注:路径最好为"/"不要为"\"可能会导致报错

UBLICCLASSWIL1DOCONTROLLEREXTENDSJEECGCONTROLLER<WILLDO,ILWILLDOSERVICE>

PRIVATEIWIULDOSERVICEAGENCYSERVICE;

0REGUESTMAPPING(OV"/WI1LDO/AGENCY)

0API(TAGS="代办列表")

OVENSION:

OAUTOWIRED

QPARAM

分页列表查询

DRESTCONTROLLER

@SLF4J

2024-08-28

V1.0

ODATE:

WILLDC

/火火


前端组件这是要找到你前端创建的文件夹中带有xxxList.vue的文件的相对路径,需要删除掉在你创建的文件夹前边的文件参数
例如我的相对路径为:src\views\willdo\AgencyList.vue
前端组件应该填入为:willdo/AgencyList
2.授权
保存好后进入角色管理菜单,找到管理员进行授权

0015-1422352

20181221120323

P014R4

三州登共电个

201201:21180124

2018:12201250

2022050022521

E开发

中中甲

力收翻多

西

业1物2

MM

共美包数爆厂10多

商色编环

香香名称

AC收年

造竹传合

加建C间

1W

G发8

蜀权重8

发禁参

招发禁色

O工

二漂惠

五费


2018:1221160219

共6条数烟

20101220105


将你创建的菜单全部勾上(我这里是代办列表),点保存,然后刷新就可以了。

地登号行

所用有的的奖限

代力禁译

212652

角纳取喝量

科一

1中

中出

停入

首西

二二

2241%8

工作台

3


七、需求测试
1.完成一个小功能,自定义一个代办列表:标题,内容,开始时间,结束时间,处理人,处理状态(下拉选项:0-未处理;1-已处理;2-作废)。对列表的内容进行增删查改(其实就是平台的代码导出功能生成的代码功能),重点要求:在新增数据的时候,”标题“是由后台返回的系统时间,这就需要自定义接口去获取内容。日期需要前后端同时做校验,结束日期不能小于开始日期。(法本农商银行笔试题)


2.现有一张表,zhrj_scada_event(告警事件表)。表结构如下所示:
表1:告警事件表(zhrj_scada_event)

设备类型(2:RTU3:通道

状态(1:投入2:退出)

小件发生时毫秒

事件发生时间

KEYIDTAG

ALARMPRIORITY

告警优先级

告警类型

是否主

告警内容

ALARMTYPE

需要考店

MILISECOND

列名称

设备D

STATUS

OCCURTIME

标签信息

VARCHAL

BIGINT

类型

DATETIME

BIGINT

长度

备注

DEVIG

CONTENT

OBIID

INT

100

ARCHAL

11

11

INT

11

20

INT

256

INT

11

20

7

5

3

8

4

6

9



该表记录了一段时间内终端设备(RTU)及其通道的投入(在线)、退出(离线)状态数据。
需要实现的功能:
完成表单的在线创建,生成代码进行简单的增删改查。

相关文章
|
1天前
|
消息中间件 监控 Java
RocketMQ:底层Netty频繁OS OOM
本文分析了一起RocketMQ应用因Netty频繁申请堆外内存导致OS OOM的问题。根本原因是多个ClassLoader加载了多个PooledByteBufAllocator实例,各自独立占用堆外内存,突破JVM的MaxDirectMemorySize限制。结合Arthas、NMT等工具深入排查,最终定位到rocketmq-client实例占用近1G堆外内存。建议短期调小Java堆以腾出空间,长期优化Netty内存使用与类加载机制。
 RocketMQ:底层Netty频繁OS OOM
|
1天前
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
本文复盘了Redis内存陡增100%的故障:因大Key调用导致带宽耗尽,引发缓冲区(输入/输出)内存激增,最终占满实例内存,虽淘汰策略存在但仍导致服务不可用。根因是缓冲区内存被撑爆,而非数据本身。建议优化Key设计、监控缓冲区及合理配置。
Redis:内存陡增100%深度复盘
|
1天前
|
Java 测试技术 API
从Google线上故障,谈灰度发布的重要性
2025年6月12日,Google Cloud因未灰度发布新功能导致全球服务中断7小时。本文以该事件为例,阐述配置灰度发布的重要性,介绍基于Nacos的IP和标签灰度方案,强调通过渐进式发布降低系统风险,保障业务稳定。
从Google线上故障,谈灰度发布的重要性
|
1天前
|
自然语言处理 fastjson Java
FastJson:大面积故障规避案例
本文记录了一次由FastJson与Kotlin混用引发的大面积故障排查过程。因误将Kotlin的lambda表达式`{}`赋值给Object字段,导致FastJson反序列化时触发静态标记`kotlin_error`置为true,进而使后续所有Kotlin类反序列化失败,引发全局异常。问题根源在于FastJson对Kotlin支持不完善,且多语言混编增加了隐蔽性。最终通过深入源码定位并修复,强调了框架风险意识与代码严谨性的重要性。
 FastJson:大面积故障规避案例
|
1天前
|
消息中间件 监控 Java
RocketMQ:底层Netty频繁OS OOM
本文分析了一起RocketMQ应用因Netty频繁申请堆外内存导致OS OOM的问题。根本原因为多个ClassLoader加载了多个Netty的PooledByteBufAllocator实例,各自独立占用堆外内存,突破了JVM的MaxDirectMemorySize限制。通过Arthas排查确认,rocketmq-client实例几乎占满1G堆外内存。解决方案建议短期调小Java堆以腾出空间,长期优化中间件内存使用。
 RocketMQ:底层Netty频繁OS OOM
|
1天前
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
本文复盘了Redis内存陡增100%的事故:因大KEY及流量增长导致带宽耗尽,缓冲区激增,最终占满内存,致使SET/GET超时。根本原因在于输出/输入缓冲区失控,而非数据淘汰策略失效。需合理配置缓冲区与连接数,避免性能瓶颈。
Redis:内存陡增100%深度复盘
|
1天前
|
存储 缓存 运维
一场FullGC故障排查
本文记录了一次FullGC故障的排查过程。通过分析JVM堆内存,定位到因大对象(List&lt;Map&gt;)导致老年代频繁满溢,引发FullGC,进而造成CPU使用率飙升。结合JProfiler工具,最终找到问题根源:Excel数据加载后内存膨胀严重,且长期驻留。提出优化方案:减少内存驻留或重构存储方式,避免频繁GC,提升系统稳定性。
一场FullGC故障排查
|
1天前
|
Java Linux Apache
Docker
本文介绍Docker基础知识与实战操作,涵盖镜像打包、容器运行、日志查看及Dockerfile编写等内容,帮助开发者快速掌握Docker核心技能并实现Java项目容器化部署。
Docker
|
1天前
|
Java Linux 开发工具
Linux
本文介绍如何在Linux系统上部署SpringBoot应用。内容涵盖项目打包、JAR文件上传、JDK安装与配置、应用启动及健康检查接口验证,助力快速完成Java应用的Linux环境部署。
 Linux
|
1天前
|
监控 Java 测试技术
OOM排查之路:一次曲折的线上故障复盘
本文复盘了一次Paimon与RocksDB集成服务线上频繁OOM的排查历程。经历三次故障,从线程暴增到堆外内存泄漏,团队通过MAT、NMT、async-profiler等工具层层深入,最终定位到RocksDB JNI内存未释放问题,并迁移至Flink写入方案根治。分享了宝贵的排查思路与工具实践。
 OOM排查之路:一次曲折的线上故障复盘