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

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版本

相关文章:

JeecgBoot入门

最近在了解低代码平台,其中关注到gitee上开源项目JeecgBoot,JeecgBoot官方也有比较完整的入门教学文档,这里我们将耕者官方教程学习,并将其记录下来。 一、项目简介 JeecgBoot 是一款基于代码生成器的低代码开发平台拥有零代码能力…...

用 Vue.js 打造炫酷的动态数字画廊:展示学生作品的创意之旅

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

【YOLO学习】YOLOv8改进举例

文章目录 1. ODConv1.1 修改1.2 原yaml文件1.3 修改yaml文件样式11.4 修改yaml文件样式2 2. DAT3. 在train下修改模型 1. ODConv 1.1 修改 1. 在ultralytics/nn/models里创建ODConv.py文件。 2. 在ultralytics/nn/task.py中导入from .modules.ODConv import C2f_ODConv,ODConv…...

文心一言 VS 讯飞星火 VS chatgpt (383)-- 算法导论24.5 3题

三、对引理 24.10 的证明进行改善,使其可以处理最短路径权重为 ∞ ∞ ∞ 和 − ∞ -∞ −∞ 的情况。引理 24.10(三角不等式)的内容是:设 G ( V , E ) G(V,E) G(V,E) 为一个带权重的有向图,其权重函数由 w : E → R w:E→R w:E→R 给出&…...

【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 💯前言💯什么是GPTsGPTs的工作原理GPTs的优势GPTs的应用前景总结 💯创建GPTS应用的基本流程进入GPTs创建界面方式一:按照引导完成生成创建GPTs方式二…...

gulp入门教程2:gulp发展历史

早期阶段(2013年-2014年) 诞生背景:随着前端开发复杂度的增加,开发者们开始寻求自动化工具来简化构建流程。2013年,由Fractal Innovations的Eric Schoffstall首次发布。它借鉴了Unix管道的流式处理思想,通…...

【实验八】前馈神经网络(4)优化问题

1 参数初始化 模型构建 模型训练 优化 完整代码 2 梯度消失问题 模型构建 模型训练 完整代码 3 死亡Relu问题 模型构建 模型训练 优化 完整代码 1 参数初始化 实现一个神经网络前,需要先初始化模型参数。如果对每一层的权重和偏置都用0初始化&#xff0…...

【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)

博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾: 【机器学习】有监督学习由浅入深讲解分类算法Fisher算法讲解每日一言🌼: 今天不想跑,所以才去跑,这才是长…...

Charles抓包_Android

1.下载地址 2.破解方法 3.安卓调试办法 查看官方文档,Android N之后抓包要声明App可用User目录下的CA证书 3.1.在Proxy下进行以下设置(路径Proxy->Proxy Settings) 3.1.1.不抓包Windows,即不勾选此项,免得打输出不…...

【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。

操作环境: MATLAB 2022a 1、算法描述 语音降噪技术的目的是改善语音信号的质量,通过减少或消除背景噪声,使得语音更清晰,便于听者理解或进一步的语音处理任务,如语音识别和语音通讯。在许多实际应用中,如…...

Scala的包及其导入

//1.单个导入 //import com.sala02.A //import com.sala02.B //2.导入多个类 //import com.sala02.{A,B} //3.导入一个包下的所有类:包名._ //import com.sala02._ //4.导入一个包中的类,给他改个名字 //格式:import 包名.{原来的名字 > 新…...

deepfm模型实现招聘职位推荐算法

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…...

编程之路:蓝桥杯备赛指南

文章目录 一、蓝桥杯的起源与发展二、比赛的目的与意义三、比赛内容与形式四、比赛前的准备五、获奖与激励六、蓝桥杯的影响力七、蓝桥杯比赛注意事项详解使用Dev-C的注意事项 一、蓝桥杯的起源与发展 蓝桥杯全国软件和信息技术专业人才大赛,简称蓝桥杯&#xff0c…...

Android 15 在状态栏时间中显示秒数

这是更新后的博客草稿,关于在Android 15状态栏中显示秒数的实现: 在Android 15状态栏中显示秒数 在Android 15中,您可以通过两种方式在状态栏中显示秒数:使用ADB命令或修改系统源代码。下面详细介绍这两种方法。 方法一:通过ADB实现 您可以使用ADB(Android调试桥)命令…...

Flutter 鸿蒙next版本:自定义对话框与表单验证的动态反馈与错误处理

在现代移动应用开发中,用户体验是至关重要的一环。Flutter和鸿蒙操作系统(HarmonyOS)的结合,为开发者提供了一个强大的平台,以创建跨平台、高性能的应用程序。本文将探讨如何在Flutter与鸿蒙next版本中创建自定义对话框…...

Unreal Engine5中使用 Lyra框架

UE5系列文章目录 文章目录 UE5系列文章目录前言一、Lyra和AIS框架的区别二、下载官方Lyra游戏示例三、Lyra在动画蓝图中的使用 前言 Unreal Engine 5(UE5)提供了多种用于游戏开发的模板和框架,其中Lyra和AlS是两个不同的示例项目&#xff0c…...

Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、前后端分离安全处理方案

Lison <dreamlison163.com>, v1.0.0, 2024.06.01 Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、前后端分离安全处理方案 文章目录 Spring Security-02-Spring Security认证方式-HTTP基本认证、Form表单认证、HTTP摘要认证、…...

【scikit-learn 1.2版本后】sklearn.datasets中load_boston报错 使用 fetch_openml 函数来加载波士顿房价

ImportError: load_boston has been removed from scikit-learn since version 1.2. 由于 load_boston 已经在 scikit-learn 1.2 版本中被移除&#xff0c;需要使用 fetch_openml 函数来加载波士顿房价数据集。 # 导入sklearn数据集模块 from sklearn import datasets # 导入波…...

vxe-table v4.8+ 与 v3.10+ 导出 xlsx、支持导出合并、设置样式、宽高、边框、字体、背景、超链接、图片的详细介绍,一篇就够了

Vxe UI vue vxe-table v4.8 与 v3.10 导出 xlsx、支持导出合并、设置样式、宽高、边框、字体、背景、超链接、图片等、所有常用的 Excel 格式都能自定义&#xff0c;使用非常简单&#xff0c;纯前端实现复杂的导出。 安装插件 npm install vxe-pc-ui4.2.39 vxe-table4.8.0 vx…...

江协科技STM32学习- P36 SPI通信外设

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

【大数据】ClickHouse常见的表引擎及建表语法

ClickHouse 中最强大的表引擎当属 MergeTree &#xff08;合并树&#xff09;引擎及该系列&#xff08;*MergeTree&#xff09;中的其他引擎。接下来我们就仔细了解下MergeTree 及该系列的其他引擎的使用场景及建表语法。 MergeTree MergeTree 系列的引擎被设计用于插入极大量…...

explain执行计划分析 ref_

这里写目录标题 什么是ExplainExplain命令扩展explain extendedexplain partitions 两点重要提示本文示例使用的数据库表Explain命令(关键字)explain简单示例explain结果列说明【id列】【select_type列】【table列】【type列】 【possible_keys列】【key列】【key_len列】【ref…...

网络学习/复习4传输层

1,0...

Notepad++ 更改字体大小和颜色

前言 在长时间编程或文本编辑过程中&#xff0c;合适的字体大小和颜色可以显著提高工作效率和减少眼睛疲劳。Notepad 提供了丰富的自定义选项&#xff0c;让你可以根据个人喜好调整编辑器的外观。 步骤详解 1. 更改字体大小 打开 Notepad 启动 Notepad 编辑器。 进入设置菜…...

基于SSM+小程序的宿舍管理系统(宿舍1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 本宿舍管理系统小程序有管理员和学生两个角色。 1、管理员功能有个人中心&#xff0c;公告信息管理&#xff0c;班级管理&#xff0c;学生管理&#xff0c;宿舍信息管理&#xff0c;宿舍…...

【案例分享】TeeChart 如何为人类绩效解决方案提供数据洞察

“过去二十年来&#xff0c;我们一直在使用 Steema Software 产品&#xff0c;尤其是 TeeChart&#xff0c;这是我们软件开发的基础部分。看到 TeeChart 在这段时间里不断发展、改进和增加功能&#xff0c;真是太棒了&#xff0c;这极大地增强了我们的产品。Steema 的客户和技术…...

细谈 Linux 中的多路复用epoll

大家好&#xff0c;我是 V 哥。在 Linux 中&#xff0c;epoll 是一种多路复用机制&#xff0c;用于高效地处理大量文件描述符&#xff08;file descriptor, FD&#xff09;事件。与传统的select和poll相比&#xff0c;epoll具有更高的性能和可扩展性&#xff0c;特别是在大规模…...

51c自动驾驶~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12413878 #MCTrack 迈驰&旷视最新MCTrack&#xff1a;KITTI/nuScenes/Waymo三榜单SOTA paper&#xff1a;MCTrack: A Unified 3D Multi-Object Tracking Framework for Autonomous Driving code&#xff1a;https://gi…...

回归预测 | MATLAB实现BO-BiGRU贝叶斯优化双向门控循环单元多输入单输出回归预测

要在MATLAB中实现BO-BiGRU&#xff08;贝叶斯优化双向门控循环单元&#xff09;进行多输入单输出回归预测&#xff0c;您需要执行以下步骤&#xff1a; 数据准备&#xff1a;准备您的训练数据和测试数据。 模型构建&#xff1a;构建BO-BiGRU模型&#xff0c;可以使用MATLAB中的…...

2-ARM Linux驱动开发-设备树平台驱动

一、概述 设备树(Device Tree)是一种描述硬件的数据结构&#xff0c;用于将硬件设备的信息传递给操作系统内核。它的主要作用是使内核能够以一种统一、灵活的方式了解硬件平台的细节&#xff0c;包括设备的拓扑结构、资源分配&#xff08;如内存地址、中断号等&#xff09;等信…...