JeecgBoot入门

最近在了解低代码平台,其中关注到gitee上开源项目JeecgBootJeecgBoot官方也有比较完整的入门教学文档,这里我们将耕者官方教程学习,并将其记录下来。

一、项目简介

JeecgBoot 是一款基于代码生成器的低代码开发平台拥有零代码能力;

  • 采用前后端分离架构:SpringBoot2.xAnt Design&VueMybatis-plusShiroJWT
  • 强大的代码生成器让前后端代码一键生成,无需写任何代码!
  • JeecgBoot引领新的开发模式(Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发), 帮助解决Java项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性!
  • JeecgBoot还独创在线开发模式(No-Code概念):在线表单配置(表单设计器)、移动配置能力、工作流配置(在线设计流程)、报表配置能力、在线图表配置、插件能力(可插拔)等等!
1.1 微服务架构图
1.2 系统架构图

二、开发环境准备

2.1 开发环境搭建

前端环境准备:

  • node v20.15.0
  • pnpm 安装;

后端环境软件:

  • JDK17
  • maven3.9.8
  • mysql8.0+
  • redis

这里将所有软件打包整理好, 可以一次性下载。

2.1.1 nvm安装

由于我的电脑之前已经安装过v16.15.1版本,因此这里我首先需要卸载之前安装的版本;

C:\Users\Administrator>node -v
v16.15.1

直接通过windows程序管理器卸载即可。

前往官网下载nvm,选择一个路径安装,注意:安装路径中不能包含中文或有空格的路径。

安装完成后打开cmd,输入如下命令显示nvm的版本号即表示安装成功;

C:\Users\Administrator>nvm version
1.1.12

打开安装目录,找到settings.txt文件,双击打开它;

增加以下配置后保存(使用淘宝镜像):

root: E:\Program Files\nvm
path: E:\Program Files\nodejs# 配置node镜像:
node_mirror: https://npmmirror.com/mirrors/node/# 配置npm镜像:
npm_mirror: https://npmmirror.com/mirrors/npm/
2.1.2 node安装

重新打开cmd,查看可以安装的node版本;

C:\Users\Administrator>nvm list available|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    23.1.0    |   22.11.0    |   0.12.18    |   0.11.16    |
|    23.0.0    |   20.18.0    |   0.12.17    |   0.11.15    |
|   22.10.0    |   20.17.0    |   0.12.16    |   0.11.14    |
|    22.9.0    |   20.16.0    |   0.12.15    |   0.11.13    |
|    22.8.0    |   20.15.1    |   0.12.14    |   0.11.12    |
|    22.7.0    |   20.15.0    |   0.12.13    |   0.11.11    |
|    22.6.0    |   20.14.0    |   0.12.12    |   0.11.10    |
|    22.5.1    |   20.13.1    |   0.12.11    |    0.11.9    |
|    22.5.0    |   20.13.0    |   0.12.10    |    0.11.8    |
|    22.4.1    |   20.12.2    |    0.12.9    |    0.11.7    |
|    22.4.0    |   20.12.1    |    0.12.8    |    0.11.6    |
|    22.3.0    |   20.12.0    |    0.12.7    |    0.11.5    |
|    22.2.0    |   20.11.1    |    0.12.6    |    0.11.4    |
|    22.1.0    |   20.11.0    |    0.12.5    |    0.11.3    |
|    22.0.0    |   20.10.0    |    0.12.4    |    0.11.2    |
|    21.7.3    |    20.9.0    |    0.12.3    |    0.11.1    |
|    21.7.2    |   18.20.4    |    0.12.2    |    0.11.0    |
|    21.7.1    |   18.20.3    |    0.12.1    |    0.9.12    |
|    21.7.0    |   18.20.2    |    0.12.0    |    0.9.11    |
|    21.6.2    |   18.20.1    |   0.10.48    |    0.9.10    |This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases

安装想要的版本,命令:nvm install + 版本号,例如:

C:\Users\Administrator>nvm install 20.15.0
Downloading node.js version 20.15.0 (64-bit)...
Extracting node and npm...
Complete
npm v10.7.0 installed successfully.Installation complete. If you want to use this version, typenvm use 20.15.0

使用要用的node版本,命令:nvm use + 版本号,例如:

C:\Users\Administrator>nvm use 20.15.0
Now using node v20.15.0 (64-bit)

查看当前正在使用的版本,命令:

C:\Users\Administrator>node -v
v20.15.0
2.1.3 pnpm安装

全局安装pnpm

npm install pnpm -g

验证pnpm版本:

C:\Users\Administrator>pnpm -v
9.12.3
2.1.4 JDK17

下载JDK17,直接无脑下一步安装,此时我的电脑已经安装了三个版本;

安装完成后配置环境变量。找到此电脑右键->属性->高级系统设置->环境变量。

找到系统变量->Path编辑,添加:D:\Program Files\Java\jdk-17\bin

打开命令行控制台输入命令:

C:\Users\Administrator>java --version
java 17.0.11 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)
2.1.5 maven

我电脑之前已经安装了3.6.1版本,这个版本可以不用升级,因此我就不安装高版本了。

2.1.6 mysql

这里我将mysql安装到我的云服务器上,将如下install.sh脚本和mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz文件拷贝到/data路径下,然后运行安装脚本即可安装mysql

其中:mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz包下载路径如下:https://pan.baidu.com/s/1HTwF8nVxrg1JCUt5MEOxbg?pwd=j9nr 提取码:j9nr

# /bin/bash
# 参考 https://blog.csdn.net/atongmu2017/article/details/90610444
# mysql安装包路径
mysql_tar=/data/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
install_path=/data
mysql_pwd=test123!@#if [[ ! -f ${mysql_tar} ]];thenecho 'mysql安装包不存在'exit 0
fiif [[ -d ${install_path}/mysql ]];thenecho 'mysql已经安装..................'exit 0
fi#解压
echo '开始解压mysql安装包................'
tar -xvf ${mysql_tar} 
mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
mv mysql ${install_path}# 创建用户和用户组
echo '开始创建用户和用户组..................'
cd ${install_path}
groupadd mysql
useradd -r -g mysql mysql
cd mysql
chown -R mysql:mysql ./
passwd mysql ${mysql_pwd}#初始化数据库,并会自动生成随机密码,记下等下登陆要用 
echo '开始初始化数据库...................'
mkdir data
password=`bin/mysqld --initialize --user=mysql --basedir=./ --datadir=./data 2>&1 | grep 'root@localhost:' | awk '{print $13}' `
if [[ $? != 0 ]] ; thenecho 'mysql安装失败'
elseecho 密码是${password}
fi#修改/usr/local/mysql当前目录得用户 
chown -R root:root ./
chown -R mysql:mysql data#开始配置/etc/my.cnf
mysql_cnf=/etc/my.cnf
if [[ -f ${mysql_cnf} ]];thenecho ${mysql_cnf}文件已经存在mv ${mysql_cnf} ${mysql_cnf}.bak
fiecho 开始创建${mysql_cnf}......
touch ${mysql_cnf}
echo "[mysqld]" > ${mysql_cnf}
echo "basedir = ${install_path}/mysql" >> ${mysql_cnf}
echo "datadir = ${install_path}/mysql/data" >> ${mysql_cnf}
echo "socket = /tmp/mysql.sock" >> ${mysql_cnf}
echo "log-error = ${install_path}/mysql/data/error.log" >> ${mysql_cnf}
echo "pid-file = ${install_path}/mysql/data/mysql.pid" >> ${mysql_cnf}
echo "tmpdir = /tmp" >> ${mysql_cnf}
echo "port = 3306" >> ${mysql_cnf}
echo "max_allowed_packet=32M" >> ${mysql_cnf}
echo "default-authentication-plugin = mysql_native_password" >> ${mysql_cnf}
echo "log_bin_trust_function_creators = ON" >> ${mysql_cnf}
echo "sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" >> ${mysql_cnf}#开始自启动
echo '设置mysql开机自启动........'
cd support-files
cp mysql.server /etc/init.d/mysql 
chmod +x /etc/init.d/mysqlif [[ -f ${install_path}/mysql/lib ]];thenecho ${install_path}/mysql/lib文件已经存在
elseecho "${install_path}/mysql/lib" >> /etc/ld.so.conf
fi#配置环境变量
echo "export PATH="'$PATH'":${install_path}/mysql/bin:${install_path}/mysql/lib" >> /etc/profile
source /etc/profile#启动服务
echo `service mysql start`#连接数据库
mysql -u root -p ${password}
alter user 'root'@'localhost' identified by "${mysql_pwd}";#开启navcat远程连接
use mysql;
select host, user, authentication_string, plugin from user;
update  user set host='%' where user='root';    
flush privileges;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY "${mysql_pwd}";
FLUSH PRIVILEGES;
exit;

安装完成后mysql密码为test123!@#

2.1.7 redis
2.1.7.1 下载

这里我同样将redis安装到我的云服务器上;

ubuntu@VM-4-9-ubuntu:/data$ sudo wget http://download.redis.io/releases/redis-7.0.0.tar.gz

下载完成后需要将压缩文件解压,输入以下命令解压到当前目录;

sudo tar -zvxf redis-7.0.0.tar.gz

解压后在根目录上输ls列出所有目录会发现与下载redis之前多了一个redis-7.0.0.tar.gz文件 redis-7.0.0的目录。

2.1.7.2 编译安装

进入 redis-7.0.0目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容;

sudo make MALLOC=lib

编译完成后输出如下命令安装:

sudo make PREFIX=/usr/local/redis install

这里多了一个关键字 PREFIX=这个关键字的作用是编译的时候用于指定程序存放的路径,比如我们现在就是指定了redis必须存放在/usr/local/redis目录。

ubuntu@VM-4-9-ubuntu:/data/redis-7.0.0$ ll /usr/local/redis/
drwxr-xr-x  2 root root 4096 Nov  3 23:35 bin/

这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis即可删除redis

将默认的redis.conf拷贝到自己定义好的一个路径下,比如/usr/local/redis/etc;

ubuntu@VM-4-9-ubuntu:/data/redis-7.0.0$ sudo mkdir /usr/local/redis/etc
ubuntu@VM-4-9-ubuntu:/data/redis-7.0.0$ sudo cp redis.conf /usr/local/redis/etc
2.1.7.3 配置

修改redis.conf配置文件。这里列举下比较重要的配置项;

配置项名称配置项值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port指定redis监听端口,默认端口为6379
bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接redis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir指定本地数据库存放目录
requirepass设置 redis 连接密码,如果配置了连接密码,客户端在连接 redis 时需要通过AUTH 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,redis 可以同时打开的客户端连接数为 redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX 指定 redis 最大内存限制,redis 在启动时会把数据加载到内存中,达到最大内存后,redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

这里我们需要修改如下几个配置项:

  • 这里我要将daemonize改为yes,不然我每次启动都得在redis-server命令后面加符号&,不这样操作则只要回到Linux控制台则redis服务会自动关闭’
  • bind注释,将protected-mode设置为no;这样启动后我就可以在外网访问了;
  • 设置requirepassredis!@#

在目录/usr/local/redis输入下面命令启动redis

cd /usr/local/redis
./bin/redis-server ./etc/redis.conf

查看redis进程是否在运行;

ubuntu@VM-4-9-ubuntu:/usr/local/redis$ ps -aux | grep redis
ubuntu   3765549  0.0  0.1  39692  3600 ?        Ssl  23:45   0:00 ./bin/redis-server *:6379
ubuntu   3765588  0.0  0.1  11508  2484 pts/1    S+   23:45   0:00 grep --color=auto redis
2.2 idea启动项目

有关idea的安装这里我就不介绍了,网上相关资料太多了。接着我们去下载jeecg-boot源码;

G:\project\PHM>git clone https://gitee.com/jeecg/JeecgBoot.git
Cloning into 'JeecgBoot'...
remote: Enumerating objects: 32761, done.
remote: Counting objects: 100% (5928/5928), done.
remote: Compressing objects: 100% (3718/3718), done.
remote: Total 32761 (delta 2106), reused 5159 (delta 1501), pack-reused 26833
Receiving objects: 100% (32761/32761), 60.60 MiB | 5.10 MiB/s, done.
Resolving deltas: 100% (15779/15779), done.
Updating files: 100% (3129/3129), done.

项目目录结构如下;

使用idea加载项目jeecg-boot

2.2.1 初始化数据库

使用navcat工具连接云服务器上的mysql数据库,执行sql脚本 jeecg-boot/db/jeecgboot-mysql-5.7.sql

脚本作用:会自动创建库jeecg-boot, 并初始化数据 。

2.2.2 安装maven依赖

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

2.2.3 修改配置文件

配置文件: jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml

修改数据库配置:

修改redis配置;

2.2.4 启动项目

右键执行下面类,启动项目

jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java
2.2.5 访问接口文档
http://localhost:8080/jeecg-boot/doc.html

参考文章

[1] JeecgBoot 开发文档

[2] 同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本

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

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

相关文章

Java基础语法①Java特点+环境安装+IDEA使用

目录 1. Java的概念和用途 1.1 Java的概念和发展史 1.2 Java的重要性 1.3 Java的特点 2. Java环境 2.1 JVM 和 JDK 2.2 Java环境安装 2.3 安装IntelliJ IDEA并使用 2.4 IntelliJ IDEA常见快捷键 2.4.1 普通快捷键 2.4.2 调试快捷键 2.4.3 代码生成快捷键 本篇完 写…

windows与windows文件共享

目录 基础设置主机共享文件端设置从机接受文件端设置 基础设置 1、先确保两台电脑直接能够ping通,这是文件共享的前提,如果ping不通就去查找对应的原因,一般都是防火墙的原因。 在ping通的情况下: 2、先找到高级共享设置 3、对专…

Unity3D 开发教程:从入门到精通

Unity3D 开发教程:从入门到精通 Unity3D 是一款强大的跨平台游戏引擎,广泛应用于游戏开发、虚拟现实、增强现实等领域。本文将详细介绍 Unity3D 的基本概念、开发流程以及一些高级技巧,帮助你从零基础到掌握 Unity3D 开发。 目录 Unity3D…

[算法初阶]第二集 滑动窗口(已完结)

大家好啊,好久没有更新了,最近比较忙,所以来更新初阶算法,正好复习一下,感谢大家的观看,如有错误欢迎指出。 下面我们来看题目吧! 1.209. 长度最小的子数组 这题大家想必一眼就看出了解法一暴力法 这个解法很简单 代码如下,不做多的解释 class Solution { publi…

恋爱脑学Rust之Box与RC的对比

在遥远的某个小镇,住着一对年轻的恋人:阿丽和小明。他们的爱情故事就像 Rust 中的 Rc 和 Box 智能指针那样,有着各自不同的「所有权」和「共享」的理解。 故事背景 阿丽和小明准备共同养一株非常珍贵的花(我们称之为“心之花”&…

Move Dev Meetup@Beijing圆满结束,发掘Move生态新机会

Sui、Aptos 、Rooch 和 zkMove等为代表的 Move 生态在 2024 年展现出强劲的生命力和发展速度。随着技术的持续演进,Move 语言的独特优势吸引了大量优质项目、开发者、投资者和爱好者的参与,共同推动生态建设和创新应用。新一轮技术革新已经开启&#xff…

Python | Leetcode Python题解之第530题二叉搜索树的最小绝对差

题目: 题解: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def isValidBST(self, root):"…

数字经济赋能新质生产力数据集-dta格式(2012-2022年)

数据简介:新质生产力以新发展理念为思想指引,驱动数字经济创新发展动力、推动区域协调发展、转变发展方式、拓宽国际市场、共享数据要素,为数字经济高质量发展提供强大 动力支持。数字经济在发展过程中可能会存在关键性技术创新能力不足、传统…

Oracle视频基础1.4.3练习

15个视频 1.4.3 できない dbca删除数据库 id ls cd cd dbs ls ls -l dbca# delete a database 勾选 # chris 勾选手动删除数据库 ls ls -l ls -l cd /u01/oradata ls cd /u01/admin/ ls cd chris/ ls clear 初始化参数文件,admin,数据文件#新版本了…

.net core 接口,动态接收各类型请求的参数

[HttpPost] public async Task<IActionResult> testpost([FromForm] object info) { //Postman工具测试结果&#xff1a; //FromBody,Postman的body只有rawjson时才进的来 //参数为空时&#xff0c;Body(form-data、x-www-form-urlencoded)解析到的数据也有所…

《JVM第5课》虚拟机栈

无痛快速学习入门JVM&#xff0c;欢迎订阅本免费专栏 Java虚拟机栈&#xff08;Java Virtual Machine Stack&#xff0c;简称JVM栈&#xff0c;又称Java方法栈&#xff09;是 JVM 运行时数据区的一部分&#xff0c;主要用于支持Java方法的执行。每当一个新线程被创建时&#xf…

Axure大屏可视化模板:赋能各行各业的数据展示与管理

如何高效、直观地展示和分析数据&#xff0c;成为企业和机构面临的重要挑战。Axure大屏可视化模板作为一种先进的数据展示工具&#xff0c;凭借其强大的交互性和直观性&#xff0c;在多个领域内得到了广泛应用。从农业生产的智能化管理到城市发展的精细化管理&#xff0c;再到企…

【软考】Redis不同的数据类型和应用场景。

Redis的不同数据类型和对应的应用场景&#xff1a; Redis 数据类型及其应用场景 String&#xff08;字符串&#xff09; 特点&#xff1a;简单的值存储&#xff0c;支持二进制数据。应用场景&#xff1a; 缓存用户会话。缓存小的配置文件。缓存计数器。文章浏览量&#xff0…

楼梯区域分割系统:Web效果惊艳

楼梯区域分割系统源码&#xff06;数据集分享 [yolov8-seg-FocalModulation&#xff06;yolov8-seg-GFPN等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al l…

HarmonyOS Next星河版笔记--界面开发(3)

属性 1.1.设计资源-svg图标 需求&#xff1a;界面中展示图标→可以使用的svg图标(任意放大缩小不失真、可以改变颜色) 使用方式&#xff1a; ①设计师提供&#xff1a;基于项目的图标&#xff0c;拷贝到项目目录使用 Image($r(app.media.ic_dianpu)) .width(40) fillColor…

java项目之洗衣店订单管理系统源码(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的洗衣店订单管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于springboot的洗衣…

探索Unity:从游戏引擎到元宇宙体验,聚焦内容创作

unity是实时3D互动内容创作和运营平台&#xff0c;包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者&#xff0c;借助Unity将创意变成现实。提供一整套完善的软件解决方案&#xff0c;可用于创作、运营和变现任何实时互动的2D和3D内容&#xff0c;支持平台包括手机、…

(十二)JavaWeb后端开发——MySQL数据库

目录 1.数据库概述 2.MyQSL 3.数据库设计 DDL 4.MySQL常见数据类型 1.数据库概述 数据库&#xff1a;DataBase(DB)&#xff0c;是存储和管理数据的仓库 数据库管理系统&#xff1a;DataBase ManagementSystem(DBMS)&#xff0c;操纵和管理数据库的大型软件 SQL&#xff…

深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架

一、Shiro框架概念 &#xff08;一&#xff09;Shiro框架概念 1.概念&#xff1a; Shiro是apache旗下一个开源安全框架&#xff0c;它对软件系统中的安全认证相关功能进行了封装&#xff0c;实现了用户身份认证&#xff0c;权限授权、加密、会话管理等功能&#xff0c;组成一…

【WRF数据准备】土地利用类型分类标准:USGS+MODIS IGBP 21

【WRF数据准备】土地利用类型分类标准&#xff1a;USGSMODIS IGBP 21 WRF常用土地类型分类MODIS IGBP 21USGSNLCD Landuse 选择土地利用分类标准替换城市土地类型后更改土地利用分类参考 WRF常用土地类型分类 WRF中土地利用类型最高分辨率是30s&#xff0c;且主要分为MODIS和U…