Spring Boot、MyBatis、Redis、Nginx、ES 搜索引擎、FastDFS 文件存储、分布式会话、单点登录、RabbitMQ 消息队列、Kafka 消息队列、MyCAT、Sharding-JDBC、分布式锁设计、分布式全局 ID 设计、分布式事务和数据一致性、接口幂等性设计、SpringCloud G 版微服务、Docker、K8S、容器弹性扩缩容、Netty、JVM 性能调优、MySql 性能调优、应用程序性能调优、Tomcat 性能调优、Linux 性能调优、架构调优
基于 Springboot2.x 实现单体架构设计与准备工作(本文以 2.2.5 讲解,当前版本升级要点见文末版本差异小节)
实现单体电商项目核心功能开发
实现单体电商项目个人中心功能
项目部署与上线
聚合工程(Multi-module project)是一种将多个相关子项目(module)组合在一起的项目结构,通常用于大型项目的开发和管理。使用 Spring Boot 创建和管理聚合工程可以提高代码的可维护性和复用性。以下是整合 Spring Boot 的详细步骤
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.0</version>
<relativePath/>
</parent>
<groupId>com.xiaoye</groupId>
<artifactId>food</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
1. 聚合工程里可以分为顶级项目(顶级工程、父工程)与子工程,这两者的关系其实就是父子继承的关系。
子工程在 maven 里称之为模块(module),模块之间平级关系,是可以相互依赖的。
2. 子模块可以使用顶级工程里所有的资源(依赖),子模块之间如果要使用资源,必须构建依赖(构建关系)
3. 一个顶级工程是可以由多个不同的子工程共同组合而成。
-->
<packaging>pom</packaging>
<modules>
<module>food-common</module>
<module>food-pojo</module>
<module>food-api</module>
<module>food-mapper</module>
<module>food-service</module>
</modules>
<properties>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>| 特性 | 旧版(2.2.5.RELEASE) | 当前(3.5.x) |
|---|---|---|
| JDK | 1.8 | 17-25(推荐 21 LTS) |
| Spring | 5.2.x | 6.2.x |
| javax/jakarta | javax | jakarta(包名强制迁移) |
| 单测 | JUnit 4 | JUnit 5 + AssertJ |
| 中间件兼容 | 旧版客户端 | 需使用 jakarta 版客户端(如 jedis 5.x、lettuce 6.x) |
聚合工程(父 pom + 子模块)结构在 Boot 3.x 中完全一致;核心变化是 JDK 17+ 基线、jakarta 包名迁移,以及配套中间件客户端需同步升级。