mirror of
https://gitee.com/gz-yami/mall4j.git
synced 2026-10-06 14:13:10 +08:00
更新springboot4版本说明
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||

|
||||
Mall4j开源商城,一个基于spring boot、spring oauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的开源商城
|
||||
|
||||
## Spring以及VUE官方宣布,SpringBoot2与Vue2已在2023年底停止维护。新项目建议使用SpringBoot3+Vue3的组合,本商城已完成升级!!!
|
||||
## Spring官方宣布,SpringBoot3于2026年6月底停止维护。新项目建议使用SpringBoot4,本商城已完成升级!!!
|
||||
## VUE官方宣布,Vue2已在2023年底停止维护。新项目建议使用Vue3,本商城已完成升级!!!
|
||||
|
||||
## 前言
|
||||
|
||||
@@ -48,19 +49,19 @@ uni-app:[https://gitee.com/gz-yami/mall4uni](https://gitee.com/gz-yami/mall4un
|
||||
|
||||
| 技术 | 版本 | 说明 |
|
||||
|---------------------|---------|------------------------------|
|
||||
| Spring Boot | 3.0.4 | MVC核心框架 |
|
||||
| Spring Security web | 3.0.4 | web应用安全防护 |
|
||||
| satoken | 1.34.0 | 一个轻量级 Java 权限认证框架,取代spring oauth2 |
|
||||
| MyBatis | 3.5.10 | ORM框架 |
|
||||
| MyBatisPlus | 3.5.3.1 | 基于mybatis,使用lambda表达式的 |
|
||||
| spring-doc | 2.0.0 | 接口文档工具 |
|
||||
| jakarta-validation | 3.0.2 | 验证框架 |
|
||||
| redisson | 3.19.3 | 对redis进行封装、集成分布式锁等 |
|
||||
| hikari | 5.0.1 | 数据库连接池 |
|
||||
| logback | 1.4.5 | log日志工具 |
|
||||
| lombok | 1.18.26 | 简化对象封装工具 |
|
||||
| hutool | 5.8.15 | 更适合国人的java工具集 |
|
||||
| knife4j | 4.0.0 | 基于swagger,更便于国人使用的swagger ui |
|
||||
| Spring Boot | 4.x | MVC核心框架 |
|
||||
| Spring Security web | 以pom为准,一直更新 | web应用安全防护 |
|
||||
| satoken | 以pom为准,一直更新 | 一个轻量级 Java 权限认证框架,取代spring oauth2 |
|
||||
| MyBatis | 以pom为准,一直更新 | ORM框架 |
|
||||
| MyBatisPlus | 以pom为准,一直更新 | 基于mybatis,使用lambda表达式的 |
|
||||
| spring-doc | 以pom为准,一直更新 | 接口文档工具 |
|
||||
| jakarta-validation | 以pom为准,一直更新 | 验证框架 |
|
||||
| redisson | 以pom为准,一直更新 | 对redis进行封装、集成分布式锁等 |
|
||||
| hikari | 以pom为准,一直更新 | 数据库连接池 |
|
||||
| logback | 以pom为准,一直更新 | log日志工具 |
|
||||
| lombok | 以pom为准,一直更新 | 简化对象封装工具 |
|
||||
| hutool | 以pom为准,一直更新 | 更适合国人的java工具集 |
|
||||
| knife4j | 以pom为准,一直更新 | 基于swagger,更便于国人使用的swagger ui |
|
||||
|
||||
|
||||
通过阿里的代码规范扫描工具(Alibaba Java Coding Guidelines plugin),扫描无异常:
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
| jdk | 17 |
|
||||
| mysql | 5.7+ |
|
||||
| redis | 4.0+ |
|
||||
| nodejs | 14-16 |
|
||||
| nodejs | 18+ |
|
||||
| xxl-job | 2.4.0 |
|
||||
|
||||
|
||||
|
||||
@@ -1,142 +1,23 @@
|
||||
`Compose` 支持 Linux、macOS、Windows 10 三大平台。
|
||||
目前 Docker 官方用 GO 语言 重写 了 Docker Compose,并将其作为了 docker cli 的子命令,称为 Compose V2。
|
||||
|
||||
`Compose` 可以通过 Python 的包管理工具 `pip` 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。
|
||||
安装到全局
|
||||
```shell
|
||||
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
如果上面下载很慢可以用一下命令找到适合本系统的docker-compose url
|
||||
echo https://github.com/docker/compose/releases/latest/download/docker-compose-`uname -s`-`uname -m`
|
||||
将输出结果在浏览器打开,这样就会自动下载命名为docker-compose再上传到服务器上
|
||||
|
||||
前两种方式是传统方式,适合本地环境下安装使用;最后一种方式则不破坏系统环境,更适合云计算场景。
|
||||
|
||||
`Docker for Mac` 、`Docker for Windows` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。
|
||||
|
||||
```bash
|
||||
$ docker-compose --version
|
||||
|
||||
docker-compose version 1.17.1, build 6d101fb
|
||||
sudo mv docker-compose /usr/libexec/docker/cli-plugins
|
||||
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
|
||||
sudo chown root:root /usr/libexec/docker/cli-plugins/docker-compose
|
||||
```
|
||||
|
||||
Linux 系统请使用以下介绍的方法安装。
|
||||
验证和使用
|
||||
```shell
|
||||
$ docker compose version
|
||||
|
||||
## 安装方法一:二进制包
|
||||
|
||||
在 Linux 上的也安装十分简单,从 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。
|
||||
|
||||
例如,在 Linux 64 位系统上直接下载对应的二进制包。
|
||||
|
||||
```bash
|
||||
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
|
||||
$ sudo chmod +x /usr/local/bin/docker-compose
|
||||
Docker Compose version v2.x.x
|
||||
```
|
||||
如果能正常返回,说明已经可以正常使用。只要将熟悉的 docker-compose 命令替换为 docker compose,即可使用 Docker Compose。
|
||||
|
||||
## 安装方法二:PIP 安装
|
||||
|
||||
*注:* `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是 `ARM`(例如,树莓派),再使用 `pip` 安装。
|
||||
|
||||
这种方式是将 Compose 当作一个 Python 应用来从 pip 源中安装。
|
||||
|
||||
1、安装python-pip
|
||||
|
||||
```bash
|
||||
yum -y install epel-release
|
||||
|
||||
yum -y install python-pip
|
||||
```
|
||||
|
||||
|
||||
执行安装命令:
|
||||
|
||||
```bash
|
||||
pip install -U docker-compose
|
||||
```
|
||||
|
||||
可以看到类似如下输出,说明安装成功。
|
||||
|
||||
```bash
|
||||
Collecting docker-compose
|
||||
Downloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded
|
||||
...
|
||||
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
|
||||
```
|
||||
|
||||
查看版本号
|
||||
```
|
||||
docker-compose version
|
||||
```
|
||||
|
||||
bash 补全命令
|
||||
|
||||
将对应版本号的docker-compose补全如:下面的`1.8.0`替换成 `1.24.1`
|
||||
|
||||
```bash
|
||||
$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 容器中执行
|
||||
|
||||
Compose 既然是一个 Python 应用,自然也可以直接用容器来执行它。
|
||||
|
||||
```bash
|
||||
$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
|
||||
$ chmod +x /usr/local/bin/docker-compose
|
||||
```
|
||||
|
||||
实际上,查看下载的 `run.sh` 脚本内容,如下
|
||||
|
||||
```bash
|
||||
set -e
|
||||
|
||||
VERSION="1.8.0"
|
||||
IMAGE="docker/compose:$VERSION"
|
||||
|
||||
|
||||
# Setup options for connecting to docker host
|
||||
if [ -z "$DOCKER_HOST" ]; then
|
||||
DOCKER_HOST="/var/run/docker.sock"
|
||||
fi
|
||||
if [ -S "$DOCKER_HOST" ]; then
|
||||
DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST"
|
||||
else
|
||||
DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH"
|
||||
fi
|
||||
|
||||
|
||||
# Setup volume mounts for compose config and context
|
||||
if [ "$(pwd)" != '/' ]; then
|
||||
VOLUMES="-v $(pwd):$(pwd)"
|
||||
fi
|
||||
if [ -n "$COMPOSE_FILE" ]; then
|
||||
compose_dir=$(dirname $COMPOSE_FILE)
|
||||
fi
|
||||
# TODO: also check --file argument
|
||||
if [ -n "$compose_dir" ]; then
|
||||
VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"
|
||||
fi
|
||||
if [ -n "$HOME" ]; then
|
||||
VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config
|
||||
fi
|
||||
|
||||
# Only allocate tty if we detect one
|
||||
if [ -t 1 ]; then
|
||||
DOCKER_RUN_OPTIONS="-t"
|
||||
fi
|
||||
if [ -t 0 ]; then
|
||||
DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"
|
||||
fi
|
||||
|
||||
exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"
|
||||
```
|
||||
|
||||
可以看到,它其实是下载了 `docker/compose` 镜像并运行。
|
||||
|
||||
## 卸载
|
||||
|
||||
如果是二进制包方式安装的,删除二进制文件即可。
|
||||
|
||||
```bash
|
||||
rm /usr/local/bin/docker-compose
|
||||
```
|
||||
|
||||
如果是通过 `pip` 安装的,则执行如下命令即可删除。
|
||||
|
||||
```bash
|
||||
pip uninstall docker-compose
|
||||
```
|
||||
比如`docker-compose up -d`改为`docker compose up -d`
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
## 安装 Docker
|
||||
## Centos安装 Docker
|
||||
|
||||
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
|
||||
|
||||
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
|
||||
@@ -7,8 +8,8 @@ Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付
|
||||
|
||||
移除旧的版本:
|
||||
|
||||
```
|
||||
$ sudo yum remove docker \
|
||||
```shell
|
||||
sudo yum remove docker \
|
||||
docker-client \
|
||||
docker-client-latest \
|
||||
docker-common \
|
||||
@@ -22,69 +23,128 @@ $ sudo yum remove docker \
|
||||
|
||||
安装一些必要的系统工具:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
|
||||
```
|
||||
|
||||
添加软件源信息:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
||||
```
|
||||
|
||||
更新 yum 缓存:
|
||||
|
||||
```
|
||||
```shell
|
||||
# centos 7
|
||||
sudo yum makecache fast
|
||||
# CentOS 8没有fast这个命令
|
||||
sudo yum makecache
|
||||
```
|
||||
|
||||
安装 Docker-ce:
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo yum -y install docker-ce
|
||||
```
|
||||
|
||||
查看已安装docker版本
|
||||
```
|
||||
|
||||
```shell
|
||||
docker version
|
||||
```
|
||||
|
||||
启动 Docker 后台服务
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
开机启动
|
||||
|
||||
```
|
||||
systemctl enable docker
|
||||
```shell
|
||||
sudo systemctl enable docker
|
||||
```
|
||||
|
||||
|
||||
## 镜像加速
|
||||
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,推荐使用的是docker官方推荐的中国镜像地址:https://registry.docker-cn.com
|
||||
## 优化日志文件大小
|
||||
|
||||
|
||||
新版的 Docker 使用 `/etc/docker/daemon.json`(Linux,没有请新建)。
|
||||
|
||||
请在该配置文件中加入(没有该文件的话,请先建一个):
|
||||
```javascript
|
||||
请在该配置文件中加入:
|
||||
|
||||
(没有该文件的话,请先建一个)
|
||||
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": ["https://registry.docker-cn.com"]
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m","max-file": "1"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
重启docker
|
||||
|
||||
```
|
||||
```shell
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
|
||||
## 镜像加速
|
||||
|
||||
鉴于国内网络问题,无法拉取docker镜像,并且由于不可抗拒力,通常的国内docker镜像加速已经无法使用
|
||||
|
||||
对于mall4cloud的说需要的依赖,开发人员已将镜像打包到阿里云,只有商城应用所需要镜像,无其他镜像。如果对这边的镜像不放心的,也可以自己配置可访问的镜像地址。
|
||||
|
||||
如果找到可以用的镜像,可以配置镜像地址:https://xxx
|
||||
|
||||
|
||||
请在`/etc/docker/daemon.json`该配置文件中加入`registry-mirrors`:
|
||||
|
||||
```json
|
||||
{
|
||||
"registry-mirrors": ["https://xxx"],
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m","max-file": "1"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 检查加速器是否生效
|
||||
|
||||
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。
|
||||
```
|
||||
|
||||
```shell
|
||||
Registry Mirrors:
|
||||
https://registry.docker-cn.com/
|
||||
https://xxx
|
||||
```
|
||||
|
||||
### 下载docker-compose
|
||||
|
||||
目前 Docker 官方用 GO 语言 重写 了 Docker Compose,并将其作为了 docker cli 的子命令,称为 Compose V2。
|
||||
|
||||
安装到全局
|
||||
```shell
|
||||
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
如果上面下载很慢可以用一下命令找到适合本系统的docker-compose url
|
||||
echo https://github.com/docker/compose/releases/latest/download/docker-compose-`uname -s`-`uname -m`
|
||||
将输出结果在浏览器打开,这样就会自动下载命名为docker-compose再上传到服务器上
|
||||
|
||||
sudo mv docker-compose /usr/libexec/docker/cli-plugins
|
||||
sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose
|
||||
sudo chown root:root /usr/libexec/docker/cli-plugins/docker-compose
|
||||
```
|
||||
|
||||
验证和使用
|
||||
```shell
|
||||
$ docker compose version
|
||||
|
||||
Docker Compose version v2.x.x
|
||||
```
|
||||
如果能正常返回,说明已经可以正常使用。只要将熟悉的 docker-compose 命令替换为 docker compose,即可使用 Docker Compose。
|
||||
|
||||
比如`docker-compose up -d`改为`docker compose up -d`
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
3. 安装`open-jdk17`(参考《centos jdk安装》)
|
||||
4. 安装`maven`(参考《通过yum安装maven》)
|
||||
5. 使用 `mvn clean package -DskipTests` 命令进行打包
|
||||
6. 使用 `docker-compose up` 启动项目
|
||||
6. 使用 `docker compose up` 启动项目
|
||||
7. 使用nginx将请求指向特定的端口。
|
||||
|
||||
|
||||
@@ -26,52 +26,52 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Spring Boot</td>
|
||||
<td>3.0.4</td>
|
||||
<td>4.x</td>
|
||||
<td>MVC核心框架</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MyBatis</td>
|
||||
<td>3.5.0</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>ORM框架</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MyBatisPlus</td>
|
||||
<td>3.5.3.1</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>基于mybatis,使用lambda表达式的</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Swagger-UI</td>
|
||||
<td>4.0.0</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>文档生产工具</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>redisson</td>
|
||||
<td>3.19.3</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>对redis进行封装、集成分布式锁等</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>hikari</td>
|
||||
<td>3.2.0</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>数据库连接池</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>log4j2</td>
|
||||
<td>2.17.2</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>更快的log日志工具</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>lombok</td>
|
||||
<td>1.18.8</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>简化对象封装工具</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>hutool</td>
|
||||
<td>5.8.15</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>更适合国人的java工具集</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>xxl-job</td>
|
||||
<td>2.3.1</td>
|
||||
<td>以pom为准,一直更新</td>
|
||||
<td>定时任务</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<knife4j.version>4.5.0</knife4j.version>
|
||||
<xxl-job.version>2.4.2</xxl-job.version>
|
||||
<satoken.version>1.44.0</satoken.version>
|
||||
<!--这个是为了兼容springboot 3.4,knife4j更新这个大于2.7的版本就可以考虑删除掉-->
|
||||
<!--这个是为了兼容springboot 新版,knife4j更新这个大于2.7的版本就可以考虑删除掉-->
|
||||
<springdoc.version>3.0.2</springdoc.version>
|
||||
</properties>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user