深入浅出SpringBoot2.x

本书深入浅出地讲解SpringBoot2.x的原理与应用,覆盖全注解下的SpringIoC和AOP、MyBatis数据库编程、REST风格网站搭建、SpringSecurity、WebFlux、高并发处理、部署监控及SpringCloud入门,适合Java开发人员和微服务开发者。

封页

封页

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

编辑推荐

  • 来自一线开fa者的实战经验总结,赠送作者讲解的部分配套视频课程 - 从理论到实践,全面介绍Spring Boot 的原理和应用 - 以高并发场景作为实践案例,循序渐进阐述Spring Boot 实用技巧 - 结合主流持久层框架MyBatis,讲述企业级Spring Boot 开发要点 当前互联网技术盛行,以Spring 框架为主导的Java 互联网技术成了主流,而基于Spring 技术衍生出来的Spring Boot,采用了“约定优于配置”的思想,极大地简化了Spring 框架的开发。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。2017 年9 月,Spring 框架出现了重大版本升级,从4.x 版本升级为了5.x 版本,随着这次升级,Spring Boot的版本也在2018年3月从1.x升级到了2.x。 本书重点讲解Spring Boot 2.x 技术, 首先通过与传统Spring MVC 开发进行对比让读者融入Spring Boot 的开发中,然后再分别介绍全注解下的Spring IoC 和AOP、结合MyBatis 框架详解数据库编程和其事务开发、流行的NoSQL(Redis和MongoDB)技术、Spring MVC 技术、REST风格网站搭建、Spring Security 技术、Spring 5.x 新发布的WebFlux 技术、高并发与锁、打包、测试、监控和Spring Cloud 入门等内容,从而帮助读者掌握企业级Spring Boot 开发的要点。 本书涵盖的内容从理论到互联网微服务后端的实践,无论是Java 互联网后端开发人员,或是从传统Spring 项目转向Spring Boot 的开发人员,还是Java 微服务开发人员,都可以从本书中获益。

内容简介

Spring框架是Java EE开发的强有力的工具和事实标准,而Spring Boot采用“约定优于配置”的原则简化了Spring的开发,从而成为业界流行的微服务开发框架,已经被越来越多的企业采用。2018年3月Spring Boot的版本正式从1.x升级到了2.x,为了适应新潮流,本书将对Spring Boot 2.x技术进行深入讲解。 本书从一个*简单的工程开始讲解Spring Boot企业级开发,其内容包含全注解下的Spring IoC和AOP、数据库编程(JDBC、JPA和MyBatis)、数据库事务、NoSQL(Redis和MongoDB)技术、Spring MVC、Spring 5新一代响应式框架WebFlux、互联网抢购业务、部署与监控、REST风格和Spring Cloud分布式开发等。 本书内容紧扣互联网企业的实际要求,从全注解下Spring知识讲到Spring Boot的企业级开发,对于Java开发人员,尤其是初学Spring Boot的人员和需要从传统Spring转向Spring Boot开发的技术人员,具有很高的参考价值。

作者简介

杨开振,精通Java 互联网技术开发和实践,拥有十余年一线企业开发经验,著有业内畅销书《深入浅出MyBatis 技术原理与实战》和《Java EE 互联网轻量级框架整合开发——SSM 框架(Spring MVC Spring MyBatis) 和Redis 实现 》,目前成为自由职业人,在淘宝教育平台上从事Java EE 互联网相关的在线培训工作。

目 录

目 录





第 1章 Spring Boot来临 1


1.1 Spring的历史 1


1.2 注解还是XML 2


1.3 Spring Boot的优点 3


1.4 传统Spring MVC和Spring Boot的对比 4


第 2章 聊聊开发环境搭建和基本开发 10


2.1 搭建Spring Boot开发环境 10


2.1.1 搭建Eclipse开发环境 10


2.1.2 搭建IntelliJ IDEA开发环境 13


2.2 Spring Boot的依赖和自动配置 15


2.3 使用自定义配置 19


2.4 开发自己的Spring Boot项目 21


第3章 全注解下的Spring IoC 23


3.1 IoC容器简介 23


3.2 装配你的Bean 27


3.2.1 通过扫描装配你的Bean 27


3.2.2 自定义第三方Bean 31


3.3 依赖注入 32


3.3.1 注解@Autowired 34


3.3.2 消除歧义性——@Primary和@Quelifier 35


3.3.3 带有参数的构造方法类的装配 36


3.4 生命周期 37


3.5 使用属性文件 42


3.6 条件装配Bean 45


3.7 Bean的作用域 46


3.8 使用@Profile 48


3.9 引入XML配置Bean 50


3.10 使用Spring EL 51


第4章 开始约定编程——Spring AOP 53


4.1 约定编程 53


4.1.1 约定 53


4.1.2 ProxyBean的实现 57


4.1.3 总结 60


4.2 AOP的概念 61


4.2.1 为什么使用AOP 61


4.2.2 AOP 术语和流程 64


4.3 AOP开发详解 65


4.3.1 确定连接点 65


4.3.2 开发切面 66


4.3.3 切点定义 67


4.3.4 测试AOP 68


4.3.5 环绕通知 71


4.3.6 引入 72


4.3.7 通知获取参数 74


4.3.8 织入 75


4.4 多个切面 77


第5章 访问数据库 82


5.1 配置数据源 83


5.1.1 启动默认数据源 83


5.1.2 配置自定义数据源 83


5.2 使用JdbcTemplate操作数据库 86


5.3 使用JPA(Hibernate)操作数据 90


5.3.1 概述 90


5.3.2 开发JPA 90


5.4 整合MyBatis框架 96


5.4.1 MyBatis简介 96


5.4.2 MyBatis的配置 97


5.4.3 Spring Boot整合MyBatis 101


5.4.4 MyBatis的其他配置 104


第6章 聊聊数据库事务处理 107


6.1 JDBC的数据库事务 108


6.2 Spring声明式事务的使用 110


6.2.1 Spring声明式数据库事务约定 110


6.2.2 @Transactional的配置项 111


6.2.3 Spring事务管理器 113


6.2.4 测试数据库事务 114


6.3 隔离级别 118


6.3.1 数据库事务的知识 118


6.3.2 详解隔离级别 120


6.4 传播行为 124


6.4.1 传播行为的定义 125


6.4.2 测试传播行为 126


6.5 @Transactional自调用失效问题 130


第7章 使用性能利器——Redis 134


7.1 spring-data-redis项目简介 135


7.1.1 spring-data-redis项目的设计 135


7.1.2 RedisTemplate 137


7.1.3 Spring对Redis数据类型操作的封装 139


7.1.4 SessionCallback和RedisCallback接口 141


7.2 在Spring Boot中配置和使用Redis 142


7.2.1 在Spring Boot中配置Redis 142


7.2.2 操作Redis数据类型 143


7.3 Redis的一些特殊用法 148


7.3.1 使用Redis事务 148


7.3.2 使用Redis流水线 149


7.3.3 使用Redis发布订阅 150


7.3.4 使用Lua脚本 153


7.4 使用Spring缓存注解操作Redis 156


7.4.1 缓存管理器和缓存的启用 156


7.4.2 开发缓存注解 157


7.4.3 测试缓存注解 163


7.4.4 缓存注解自调用失效问题 165


7.4.5 缓存脏数据说明 165


7.4.6 自定义缓存管理器 166


第8章 文档数据库——MongoDB 168


8.1 配置MongoDB 169


8.2 使用MongoTemplate实例 170


8.2.1 搭建开发环境 170


8.2.2 使用MongoTemplate操作文档 173


8.3 使用JPA 178


8.3.1 基本用法 178


8.3.2 使用自定义查询 180


第9章 初识Spring MVC 183


9.1 Spring MVC框架的设计 183


9.2 Spring MVC流程 184


9.3 定制Spring MVC的初始化 191


9.4 Spring MVC实例 192


9.4.1 开发控制器 193


9.4.2 视图和视图渲染 194


第 10章 深入Spring MVC开发 197


10.1 处理器映射 197


10.2 获取控制器参数 198


10.2.1 在无注解下获取参数 199


10.2.2 使用@RequestParam获取参数 199


10.2.3 传递数组 200


10.2.4 传递JSON 200


10.2.5 通过URL传递参数 203


10.2.6 获取格式化参数 204


10.3 自定义参数转换规则 205


10.3.1 处理器获取参数逻辑 205


10.3.2 一对一转换器(Converter) 208


10.3.3 GenericConverter集合和数组转换 210


10.4 数据验证 211


10.4.1 JSR-303 验证 211


10.4.2 参数验证机制 214


10.5 数据模型 217


10.6 视图和视图解析器 219


10.6.1 视图设计 219


10.6.2 视图实例——导出PDF文件 220


10.7 文件上传 224


10.7.1 Spring MVC对文件上传的支持 224


10.7.2 开发文件上传功能 226


10.8 拦截器 228


10.8.1 拦截器的设计 228


10.8.2 开发拦截器 229


10.8.3 多个拦截器的顺序 231


10.9 国际化 234


10.9.1 国际化消息源 234


10.9.2 国际化解析器 235


10.9.3 国际化实例——SessionLocaleResolver 237


10.10 Spring MVC拾遗 240


10.10.1 @ResponseBody转换为JSON的秘密 240


10.10.2 重定向 241


10.10.3 操作会话对象 243


10.10.4 给控制器增加通知 245


10.10.5 获取请求头参数 247


第 11章 构建REST风格网站 249


11.1 REST简述 249


11.1.1 REST名词解释 249


11.1.2 HTTP的动作 250


11.1.3 REST风格的一些误区 251


11.2 使用Spring MVC开发REST风格端点 251


11.2.1 Spring MVC整合REST 252


11.2.2 使用Spring开发REST风格的端点 252


11.2.3 使用@RestController 260


11.2.4 渲染结果 261


11.2.5 处理HTTP状态码、异常和响应头 262


11.3 客户端请求RestTemplate 266


11.3.1 使用RestTemplate请求后端 267


11.3.2 获取响应头、状态码和资源交换 269


第 12章 安全——Spring Security 271


12.1 概述和简单安全认证 271


12.2 使用WebSecurityConfigurerAdapter自定义 273


12.3 自定义用户服务信息 274


12.3.1 使用内存签名服务 275


12.3.2 使用数据库定义用户认证服务 276


12.3.3 使用自定义用户认证服务 279


12.4 限制请求 281


12.4.1 配置请求路径访问权限 282


12.4.2 使用Spring表达式配置访问权限 283


12.4.3 强制使用HTTPS 285


12.4.4 防止跨站点请求伪造 285


12.5 用户认证功能 287


12.5.1 自定义登录页面 287


12.5.2 启用HTTP Basic认证 288


12.5.3 登出 289


第 13章 学点Spring其他的技术 291


13.1 异步线程池 291


13.1.1 定义线程池和开启异步可用 292


13.1.2 异步实例 292


13.2 异步消息 294


13.2.1 JMS实例——ActiveMQ 295


13.2.2 使用AMQP——RabbitMQ 299


13.3 定时任务 303


13.4 WebSocket 应用 306


13.4.1 开发简易的WebSocket服务 306


13.4.2 使用STOMP 311


第 14章 Spring 5新框架——WebFlux 319


14.1 基础概念 319


14.1.1 响应式编程的宣言 320


14.1.2 Reactor模型 320


14.1.3 Spring WebFlux的概述 322


14.1.4 WebHandler接口和运行流程 323


14.2 通过Spring MVC方式开发WebFlux服务端 325


14.2.1 开发持久层 325


14.2.2 开发服务层 327


14.2.3 开发控制层 328


14.2.4 配置服务 330


14.2.5 客户端开发——WebClient 331


14.3 深入WebFlux服务端开发 335


14.3.1 类型转换器——Converter 335


14.3.2 验证器——Validator 337


14.3.3 访问静态资源 338


14.4 深入客户端开发 339


14.4.1 处理服务端错误和转换 339


14.4.2 设置请求头 341


14.5 使用路由函数方式开发WebFlux 342


14.5.1 开发处理器 342


14.5.2 开发请求路由 346


14.5.3 使用过滤器 347


第 15章 实践一下——抢购商品 349


15.1 设计与开发 349


15.1.1 数据库表设计 349


15.1.2 使用MyBatis开发持久层 350


15.1.3 使用Spring开发业务层和控制层 353


15.1.4 测试和配置 355


15.2 高并发开发 357


15.2.1 超发现象 357


15.2.2 悲观锁 358


15.2.3 乐观锁 359


15.2.4 使用Redis处理高并发 365


第 16章 部署、测试和监控 371


16.1 部署和运行 371


16.1.1 打包 371


16.1.2 运行项目 373


16.1.3 热部署 375


16.2 测试 376


16.2.1 构建测试类 376


16.2.2 使用随机端口和REST风格测试 377


16.2.3 Mock测试 378


16.3 Actuator监控端点 379


16.4 HTTP监控 381


16.4.1 查看敏感信息 382


16.4.2 shutdown端点 383


16.4.3 配置端点 385


16.4.4 自定义端点 387


16.4.5 健康指标项 389


16.5 JMX监控 392


第 17章 分布式开发——Spring Cloud 393


17.1 服务治理和服务发现——Eureka 395


17.1.1 配置服务治理节点 395


17.1.2 服务发现 397


17.1.3 配置多个服务治理中心节点 401


17.2 微服务之间的调用 403


17.2.1 Ribbon客户端负载均衡 403


17.2.2 Feign声明式调用 406


17.3 断路器——Hystrix 409


17.3.1 使用降级服务 410


17.3.2 启用Hystrix仪表盘 412


17.4 路由网关——Zuul 415


17.4.1 构建Zuul网关 415


17.4.2 使用过滤器 418


17.5 使用@SpringCloudApplication 421


附录 Spring Boot知识点补充 423




媒体评论

本书章节编排合理,深入浅出地阐述了Spring Boot 2.x 的原理与应用,以及当今较为流行的微服务系统经常用到的技术及原理,内容通俗易懂。以互联网常见的高并发场景作为实践案例,在同类书籍中更是难得一见。Java 工程师、架构师一定不能错过本书。 ——梁华辉,源讯信息技术(香港)有限公司系统分析师 本书从原理到实践,详细介绍了Spring Boot 的方方面面。无论你是Java 新手,还是Spring 老兵,本书都是非常值得一读的。 ——谭茂华,Java 研发(管理)专家 本

<think>首先,用户的问题是:"我想查询在 sentinel 内部将 Spring Boot 2.x 升级到 Spring Boot 3.x 的方法"。翻译成英文是:"I want to query the method for upgrading from Spring Boot 2.x to Spring Boot 3.x within sentinel." 关键点是:"在 sentinel 内部"。Sentinel 可能指的是 Alibaba Sentinel,这是一个流量控制组件,常用于微服务架构中。用户可能在讨论如何将基于 Sentinel 的应用从 Spring Boot 2.x 升级到 Spring Boot 3.x。 回顾系统级指令: - 所有行内数学表达式必须使用 $...$ 格式。 - 独立公式必须使用 $$...$$ 并单独成段。 - LaTeX 语法正确。 - 使用中文回答。 - 生成相关问题。 - 引用的段落末尾自然地添加引用标识,如 [^1]。 用户提供了引用 [1] 到 [4],这些是关于 Spring Boot 3.x 的书籍和教程。引用 [1] 是关于《深入浅出Spring Boot 2.x》的更新,提到升级到 Spring Boot 3.x。引用 [2] 是关于使用 Spring Boot 3.x 搭建 Spring Cloud Alibaba 微服务项目。引用 [3] 是关于基于 Spring Boot 3.x 的电商平台实现。引用 [4] 是关于《深入浅出Spring Boot 3.x》的代码示例,展示了 Java 17+ 的新语法。 用户说:"上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。" 但在这个对话中,没有显示上一次的问题和回答。系统指令中说:"尽可能多的参考用户上一次的问题和你的回答",但在这个消息中,这是第一次交互。所以,我应该基于当前问题回答。 用户的问题焦点是:升级 Sentinel 内部从 Spring Boot 2.x 到 3.x 的方法。Sentinel 是由 Alibaba 开源的,常用于 Spring Cloud 应用中。 为了回答,我需要回想或推断升级过程。基于一般知识: - Spring Boot 3.x 要求 Java 17 或更高版本。 - 它引入了许多变化,比如 Jakarta EE 9+ API (从 javax 切换到 jakarta)。 - Sentinel 可能依赖特定版本,需要检查兼容性。 从引用中: - 引用 [4] 提到了 Spring Boot 3.x 只能支持 Java 17+,并使用了新语法。 - 引用 [2] 讨论了 Spring Boot 3.x 和 Spring Cloud Alibaba。 Sentinel 是 Spring Cloud Alibaba 的一部分。Spring Cloud Alibaba 提供了 Sentinel 的集成。 可能的升级步骤: 1. **升级 Java**: 确保使用 Java 17 或更高版本。 2. **升级 Spring Boot**: 更改项目依赖到 Spring Boot 3.x。 3. **处理依赖冲突**: 检查 Sentinel 版本是否兼容 Spring Boot 3.x。可能需要升级 Sentinel 到支持 Spring Boot 3.x 的版本。 4. **API 更改**: 处理 javax 到 jakarta 包的迁移。 5. **配置调整**: 更新 Sentinel 的配置。 6. **测试**: 运行测试确保功能正常。 我应该参考提供的引用来支持回答: - 引用 [4] 展示了代码更改,比如使用 Java 新语法。 - 引用 [2] 涉及 Spring Cloud Alibaba 和 Spring Boot 3.x。 结构化回答: - 先解释升级的必要性和挑战。 - 然后逐步说明方法。 - 由于引用是站内,我应该自然地添加引用标识。 生成相关问题: - 指令说:"生成相关问题",所以我需要在回答后添加相关问题。 回答结构: 1. **引言**: 简要回答问题。 2. **升级步骤**: 详细步骤。 3. **注意事项**: 基于引用强调关键点。 4. **相关问题**: 在最后添加。 使用中文回答。 确保 LaTeX 正确:这个主题可能不涉及数学表达式,但如果有,就遵循规则。用户问题中没有提到数学,所以可能不需要。 最终回答: - 确认升级方法。 - 基于常识和引用。 - 添加引用:[^1], [^2], [^3], [^4]。 相关问题示例: 1. Spring Boot 3.x 的主要新特性是什么? 2. 如何迁移 Jakarta EE 9+ API? 3. Sentinel 在 Spring Cloud Alibaba 中的最新版本兼容性? </think>### Sentinel 内部从 Spring Boot 2.x 升级到 Spring Boot 3.x 的方法 在将基于 Sentinel (Alibaba 开源的流量控制组件) 的 Spring Boot 应用从 2.x 升级到 3.x 时,核心挑战在于处理 Java 版本升级、依赖兼容性和 API 变更。整个过程涉及多个步骤,需确保 Sentinel 及其相关依赖(如 Spring Cloud Alibaba)与 Spring Boot 3.x 兼容。以下是基于最佳实践和开发经验的详细升级方法,参考了相关权威资料[^1][^2][^3][^4]。 #### 1. **前置条件检查** - **Java 版本升级**:Spring Boot 3.x 要求 Java 17 或更高版本(最低 Java 17)。确保开发和生产环境已升级 JDK。例如,检查 Java 版本: ```bash java -version ``` 如果使用旧版本(如 Java 8 或 11),需先完成 JDK 迁移。 - **Sentinel 版本兼容性**:确认 Sentinel 版本支持 Spring Boot 3.x。推荐使用: - Sentinel 1.8.6+ 或更高版本(官方已适配 Spring Boot 3.x)。 - Spring Cloud Alibaba 2022.0.0.0+(如 2022.0.0.0-RC1),因为它们提供对 Spring Boot 3.x 的官方支持[^2][^4]。 #### 2. **依赖管理升级** - **修改项目依赖文件**:在 Maven 或 Gradle 中更新 Spring Boot 和 Sentinel 依赖。 - **Maven 示例(pom.xml)**: ```xml <!-- 升级 Spring Boot 父 POM --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.0</version> <!-- 最新稳定版 --> </parent> <!-- 添加 Spring Cloud Alibaba 依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2022.0.0.0</version> <!-- 兼容 Spring Boot 3.x --> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 更新 Sentinel 依赖 --> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!-- 其他必要依赖,如 Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` - **关键点**:Spring Boot 3.x 使用 Jakarta EE 9+ API(包名从 `javax.*` 改为 `jakarta.*`),因此需移除所有 javax 依赖,改用 jakarta 等价库(如 `jakarta.servlet-api`)[^3][^4]。 - **处理依赖冲突**:运行 `mvn dependency:tree` 或 `gradle dependencies` 检查冲突。常见冲突包括: - Sentinel 旧版本(<1.8.6)不支持 Jakarta EE,需升级。 - 第三方库(如 MyBatis-Plus)需升级到兼容版本(如 MyBatis-Plus 3.5.3+)[^3]。 #### 3. **代码迁移与 API 适配** - **包名迁移**:手动或使用工具(如 OpenRewrite)将 `javax.*` 替换为 `jakarta.*`。例如: - 原代码:`import javax.servlet.http.HttpServletRequest;` - 新代码:`import jakarta.servlet.http.HttpServletRequest;` - **Sentinel 配置适配**:Sentinel 的注解和配置类通常无须大改,但需注意: - **资源定义**:确保 `@SentinelResource` 注解的包路径正确(例如,从 `com.alibaba.csp.sentinel.annotation` 导入)。 - **规则配置**:使用最新 Sentinel Dashboard(1.8.6+)管理规则,以兼容 Spring Boot 3.x。 - 引用 [4] 中的代码示例展示了如何使用 Java 17+ 新语法(如 `var` 关键字)简化代码,提升兼容性[^4]。 - **安全认证集成**:如果使用 Spring Security 与 Sentinel 结合(如 JWT 认证),需迁移到 Spring Security 6.x(兼容 Jakarta EE)。示例: ```java @Configuration public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .requestMatchers("/public/**").permitAll() .anyRequest().authenticated() ) .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults())); return http.build(); } } ``` 此代码基于 Spring Boot 3.x 的新 API 风格[^4]。 #### 4. **测试与验证** - **单元测试**:更新测试框架(如 JUnit 5),运行现有测试确保 Sentinel 规则(如流控、熔断)正常工作。 - **集成测试**: - 启动 Sentinel Dashboard 本地实例,验证应用连接是否正常。 - 模拟高流量场景,测试 Sentinel 的限流功能。 - 使用工具(如 Postman)验证 API 端点是否响应正确。 - **日志与监控**:检查日志中是否有 `jakarta` 相关错误或 Sentinel 初始化警告。推荐集成 Prometheus 或 Grafana 进行实时监控。 #### 5. **常见问题与解决** - **问题1:启动失败(NoClassDefFoundError)**:通常由 javax 残留引起。解决方案:使用 IDE 全局搜索 `javax` 并替换为 `jakarta`。 - **问题2:Sentinel Dashboard 无法连接**:确保使用最新版 Dashboard(1.8.6+),并在应用配置中添加: ```properties spring.cloud.sentinel.transport.dashboard=localhost:8080 # Dashboard 地址 ``` - **问题3:性能下降**:升级后可能因新版本优化而改善,但需监控 JVM 内存和 GC 行为(例如,启用 Spring Boot Actuator)。 - 参考 [^3] 中的分布式电商案例,升级过程需重点关注缓存(Redis)和消息队列(RabbitMQ)的兼容性测试[^3]。 #### 注意事项 - **逐步升级**:建议在开发环境先升级,再逐步推广到生产环境。 - **文档参考**:官方 Spring Boot 迁移指南(Spring.io)和 Sentinel GitHub 仓库提供详细说明。 - **工具辅助**:使用 Spring Boot Migrator (SBM) 工具自动化部分迁移任务。 - 升级到 Spring Boot 3.x 不仅提升性能,还支持云原生特性(如 GraalVM 原生镜像),帮助追上微服务潮流[^1][^2]。 通过以上方法,您可以顺利完成升级。实际操作中,请结合项目具体依赖进行调整,并优先参考 Sentinel 官方文档以应对最新变化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值