From 1342d3acff016423bb22e1c8f366d76405e6d184 Mon Sep 17 00:00:00 2001 From: frozenwatermelon <1242479791@qq.com> Date: Mon, 1 Jun 2026 10:29:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0springboot4=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++-- doc/README.md | 2 +- .../docker/Docker Compose 安装与卸载.md | 151 ++---------------- doc/生产环境/docker/docker centos 安装.md | 98 +++++++++--- doc/生产环境/docker/使用docker部署商城.md | 2 +- .../mall4v/src/views/common/home/index.vue | 20 +-- pom.xml | 2 +- 7 files changed, 123 insertions(+), 181 deletions(-) diff --git a/README.md b/README.md index 6c1b994e..709448ff 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ ![输入图片说明](https://images.gitee.com/uploads/images/2019/0711/174845_6db7724e_5094767.png "商城.png") 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),扫描无异常: diff --git a/doc/README.md b/doc/README.md index 4493970c..64beec70 100644 --- a/doc/README.md +++ b/doc/README.md @@ -35,7 +35,7 @@ | jdk | 17 | | mysql | 5.7+ | | redis | 4.0+ | -| nodejs | 14-16 | +| nodejs | 18+ | | xxl-job | 2.4.0 | diff --git a/doc/生产环境/docker/Docker Compose 安装与卸载.md b/doc/生产环境/docker/Docker Compose 安装与卸载.md index b81d49cd..c6288c1b 100644 --- a/doc/生产环境/docker/Docker Compose 安装与卸载.md +++ b/doc/生产环境/docker/Docker Compose 安装与卸载.md @@ -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` diff --git a/doc/生产环境/docker/docker centos 安装.md b/doc/生产环境/docker/docker centos 安装.md index fbf4212b..6d8b1f6f 100644 --- a/doc/生产环境/docker/docker centos 安装.md +++ b/doc/生产环境/docker/docker centos 安装.md @@ -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` diff --git a/doc/生产环境/docker/使用docker部署商城.md b/doc/生产环境/docker/使用docker部署商城.md index 145513e3..acfcf7cc 100644 --- a/doc/生产环境/docker/使用docker部署商城.md +++ b/doc/生产环境/docker/使用docker部署商城.md @@ -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将请求指向特定的端口。 diff --git a/front-end/mall4v/src/views/common/home/index.vue b/front-end/mall4v/src/views/common/home/index.vue index 025b98b5..f8845b01 100644 --- a/front-end/mall4v/src/views/common/home/index.vue +++ b/front-end/mall4v/src/views/common/home/index.vue @@ -26,52 +26,52 @@ Spring Boot - 3.0.4 + 4.x MVC核心框架 MyBatis - 3.5.0 + 以pom为准,一直更新 ORM框架 MyBatisPlus - 3.5.3.1 + 以pom为准,一直更新 基于mybatis,使用lambda表达式的 Swagger-UI - 4.0.0 + 以pom为准,一直更新 文档生产工具 redisson - 3.19.3 + 以pom为准,一直更新 对redis进行封装、集成分布式锁等 hikari - 3.2.0 + 以pom为准,一直更新 数据库连接池 log4j2 - 2.17.2 + 以pom为准,一直更新 更快的log日志工具 lombok - 1.18.8 + 以pom为准,一直更新 简化对象封装工具 hutool - 5.8.15 + 以pom为准,一直更新 更适合国人的java工具集 xxl-job - 2.3.1 + 以pom为准,一直更新 定时任务 diff --git a/pom.xml b/pom.xml index a5372017..88c3bf85 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ 4.5.0 2.4.2 1.44.0 - + 3.0.2