当前位置: 首页 > article >正文

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, type

nvm 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} ]];then
    echo 'mysql安装包不存在'
    exit 0
fi

if [[ -d ${install_path}/mysql ]];then
    echo '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 ]] ; then
    echo 'mysql安装失败'
else
    echo 密码是${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} ]];then
   echo ${mysql_cnf}文件已经存在
   mv ${mysql_cnf} ${mysql_cnf}.bak
fi

echo 开始创建${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/mysql

if [[ -f ${install_path}/mysql/lib ]];then
   echo ${install_path}/mysql/lib文件已经存在
else
  echo "${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.kler.cn/a/380641.html

相关文章:

  • RTMW:实时多人2D和3D 全人体姿态估计
  • C++ 泛编程 —— 嵌套使用模板类
  • benchmarksql5.0 测试工具如何在达梦上能够跑起来?
  • Java线程池面试题
  • GJB289A总线典型网络理论分析
  • 低代码开发中 DDD 领域驱动的页面权限控制
  • 如何使用springboot+redis开发一个简洁的分布式锁?
  • windows XP,ReactOS系统3.4 共享映射区(Section)---2
  • 视频批量裁剪工具
  • Jupyter notebook 添加目录插件
  • 【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键
  • 移动混合开发面试题及参考答案
  • 企业人力资源招聘面试新工具:AI智能面试系统
  • 大数据与智能算法助力金融市场分析:正大的技术创新探索
  • qt QMenuBar详解
  • windwos安装多版本Maven(图文详细版)
  • stm32使用串口的轮询模式,实现数据的收发
  • 【C++】C++的单例模式
  • 后台管理系统的通用权限解决方案(十)如何自定义SpringMVC的参数解析器
  • springboot+shiro 权限管理
  • 【前端基础】盒子模型
  • 华为HarmonyOS打造开放、合规的广告生态 - 开屏广告
  • 【双指针】【数之和】 LeetCode 633.平方数之和
  • CSS中的背景色和前景色
  • 软件测试面试题个人总结
  • 齐次线性微分方程的解的性质与结构