Spring Boot 3:高级与架构设计

978-7-115-68628-2
作者: LinkedBear
译者:
编辑: 单瑞婷
分类: Spring

图书目录:

第 一部分 Spring Framework 的 IOC 容器高级机制与原理

第 1 章 元编程与元信息 ........................... 3

1.1 理解元编程 ........................................ 3

1.1.1 理解“元” .................................. 3

1.1.2 编程与元编程 .............................. 3

1.2 配置源与配置元信息 ........................ 4

1.2.1 配置源 .......................................... 4

1.2.2 元信息 .......................................... 6

1.2.3 配置元信息 .................................. 6

1.3 Bean 与BeanDefinition ..................... 9

1.3.1 BeanDefinition 概述 ..................... 9

1.3.2 BeanDefinition 的结构 ............... 10

1.3.3 BeanDefinition 的简单使用 ....... 14

1.3.4 BeanDefinition 的合并 ............... 18

1.3.5 设计BeanDefinition 的意义 ...... 21

1.4 BeanDefinitionRegistry .................... 21

1.4.1 BeanDefinitionRegistry 概述 ..... 21

1.4.2 注册与移除 ................................ 23

1.5 小结 .................................................. 25

第 2 章 IOC 容器的高级机制 .................. 26

2.1 Environment ..................................... 26

2.1.1 Environment 概述 ...................... 26

2.1.2 Environment 的结构 .................. 28

2.1.3 Environment 的基本使用 .......... 30

2.1.4 Environment 深入探讨 .............. 32

2.2 BeanPostProcessor ........................... 34

2.2.1 理解后置处理器 ........................ 34

2.2.2 BeanPostProcessor 的使用 ......... 36

2.2.3 BeanPostProcessor 的扩展 ......... 42

2.3 BeanFactoryPostProcessor ............... 53

2.3.1 BeanFactoryPostProcessor

概述 ............................................. 53

2.3.2 BeanFactoryPostProcessor

的使用 ......................................... 53

2.3.3 BeanDefinitionRegistryPost

Processor .................................... 55

2.3.4 BeanDefinitionRegistryPost

Processor 的使用 ......................... 56

2.3.5 后置处理器的对比 .................... 59

2.4 编程式驱动IOC .............................. 59

2.4.1 简单的编程式驱动 .................... 59

2.4.2 编程式注入和初始化 ................ 62

2.4.3 内置组件的编程式使用 ............ 65

2.4.4 编程式资源管理 ........................ 67

2.5 自动装配与 SPI................................ 69

2.5.1 SPI 机制的由来 .......................... 69

2.5.2 JDK 中的SPI ............................. 70

2.5.3 Spring Framework 中的SPI ....... 71

2.5.4 SPI 在自动装配中的作用 .......... 72

2.6 小结 .................................................. 75

第 3 章 Bean 的全生命周期原理 ............ 76

3.1 Bean 的全生命周期概览 ................. 76

3.1.1 BeanDefinition 的来源 ............... 77

3.1.2 BeanDefinition 的后置处理 ....... 78

3.1.3 Bean 的实例化阶段 ................... 79

3.1.4 Bean 的销毁阶段 ....................... 80

3.1.5 Debug 测试代码编写 ................. 80

3.2 BeanDefinition 阶段 ......................... 84

3.2.1 加载XML 配置文件 .................. 84

3.2.2 加载注解配置类 ........................ 94

3.2.3 BeanDefinition 的后置处理 ..... 112

3.2.4 BeanDefinition 阶段总结 ......... 112

3.3 Bean 的实例化 ............................... 113

3.3.1 注册BeanPostProcessor ........... 114

3.3.2 finishBeanFactory

Initialization .............................. 119

3.3.3 实例化阶段总结 ...................... 131

3.4 Bean 的初始化 ............................... 132

3.4.1 doCreateBean ............................ 132

3.4.2 SmartInitializingSingleton ........ 148

3.4.3 Lifecycle 的回调 ...................... 149

3.4.4 初始化阶段总结 ...................... 152

3.5 Bean 的销毁 ................................... 152

3.5.1 ApplicationContext#stop .......... 153

3.5.2 ApplicationContext#close ......... 153

3.5.3 销毁阶段总结 .......................... 160

3.6 小结 ................................................. 160

第二部分 AOP 高级特性与原生设计

第 4 章 AOP 的高级特性 ...................... 163

4.1 TargetSource ................................... 163

4.1.1 TargetSource 的设计 ................ 163

4.1.2 TargetSource 的结构 ................ 164

4.1.3 内置TargetSource .................... 164

4.1.4 TargetSource 的使用 ................ 165

4.2 补足切入点表达式 ......................... 168

4.2.1 args( )与@args( ) ...................... 168

4.2.2 within( )与@within( ) ............... 169

4.2.3 target( )与@target( ) ................. 171

4.2.4 bean( ) ....................................... 171

4.3 切面实例化模型 ............................. 172

4.3.1 设计理念 .................................. 172

4.3.2 切面实例化模型的使用 .......... 173

4.4 引介机制 ........................................ 176

4.4.1 引介的作用和目标 .................. 177

4.4.2 AspectJ 的引介使用................. 177

4.5 LoadTimeWeaving .......................... 180

4.6 小结 ................................................ 181

第 5 章 5.1 Spring 原生 AOP 补充 ............. 182

Spring 内置的AOP 设计 ............... 182

5.1.1 连接点(Joinpoint) ............... 182

5.1.2 切入点(Pointcut) ................. 185

5.1.3 通知(Advice) ....................... 187

5.1.4 增强器(Advisor) ................. 188

5.1.5 核心API 的整体架构 .............. 190

5.2 原生AOP 的拦截器 ....................... 190

5.2.1 MethodInterceptor 的简单

使用 .......................................... 190

5.2.2 代理对象的内部结构 .............. 192

5.2.3 AdvisorAdapter......................... 193

5.3 AOP 织入的核心组件 .................... 195

5.3.1 AopProxy .................................. 195

5.3.2 AdvisedSupport ........................ 196

5.3.3 AopProxyFactory ...................... 197

5.3.4 AdvisedSupport 的子类 ........... 198

5.3.5 AnnotationAwareAspectJAuto

5.3.6 5.5.1 5.5.2 5.5.3 5.5.4 ProxyCreator ............................. 203

AOP 织入结构与流程 ............. 204

5.4 对比 SpringAOP 与 AspectJ ........... 205

5.5 原生AOP 机制的具体应用 ........... 205

需求描述 .................................. 205

代码准备 .................................. 206

AspectJ 切面类的不足 ............. 207

使用MethodInterceptor ........... 208

5.6 小结 ................................................. 210

第三部分 前沿技术与新版本特性

第 6 章 Spring 拥抱 AI ......................... 213

6.1 AI 与大语言模型 ....................... 213

6.1.1 发展历程 .................................. 213

6.1.2 运行机制 .................................. 214

6.1.3 典型应用 .................................. 215

6.1.4 主流模型 .................................. 216

6.2 Spring AI 项目 ................................ 216

6.2.1 起源与发展 .............................. 217

6.2.2 核心功能 .................................. 217

6.2.3 与传统AI 集成的对比 ............ 217

6.3 Spring Boot 整合Spring AI ............ 218

6.3.1 项目搭建与整合 ...................... 218

6.3.2 接入ChatGPT .......................... 219

6.3.3 接入DeepSeek ......................... 221

6.3.4 接入Ollama ............................. 223

6.3.5 参数调整 .................................. 226

6.4 标准化LLM 使用 .......................... 228

6.4.1 ChatClient ................................. 228

6.4.2 多轮对话 .................................. 230

6.4.3 结构化输出 .............................. 232

6.5 多模态 ............................................ 233

6.5.1 文生图 ...................................... 233

6.5.2 文本转语音 .............................. 235

6.5.3 语音转文本 .............................. 236

6.5.4 多模态融合 .............................. 237

6.6 RAG 构建知识库 ........................... 238

6.6.1 RAG 的核心流程 ..................... 238

6.6.2 手动构建知识库 ...................... 239

6.6.3 Spring AI 应用RAG ................ 241

6.7 工具调用 ........................................ 244

6.7.1 直接应用LLM 的问题 ............ 245

6.7.2 工具调用快速体验 .................. 245

6.7.3 工具的制作 .............................. 247

6.7.4 工具调用机制探究 .................. 250

6.8 MCP ............................................... 256

6.8.1 MCP 简介 ................................. 257

6.8.2 MCP 服务器制作 ..................... 257

6.8.3 MCP 客户端集成 ..................... 258

6.9 小结 ................................................ 260

第 7 章 Spring Framework 6 新特性 .... 261

7.1 AOT 编译 ....................................... 261

7.1.1 编译与解释 .............................. 261

7.1.2 JIT 编译与AOT 编译 .............. 263

7.1.3 JVM 的编译机制 ..................... 264

7.2 GraalVM ......................................... 266

7.2.1 GraalVM 概述 .......................... 266

7.2.2 安装GraalVM .......................... 266

7.2.3 使用GraalVM .......................... 269

7.3 可观察性 ........................................ 271

7.3.1 搭建可观察工程 ...................... 271

7.3.2 使用内置过滤器 ...................... 274

7.4 HTTP interface ............................... 276

7.5 小结 ................................................ 276

第 8 章 Spring Boot 3 新特性 .............. 278

8.1 版本与依赖要求 ............................ 278

8.2 自动装配规则 ................................ 278

8.3 配置属性兼容 ................................ 280

8.4 原生镜像 ........................................ 281

8.4.1 快速体验 .................................. 281

8.4.2 反射问题 .................................. 284

8.4.3 提示文件 .................................. 287

8.5 链路追踪 ........................................ 289

8.5.1 服务端工程整合Zipkin ........... 289

8.5.2 搭建可观察客户端工程 .......... 291

8.5.3 观察效果 .................................. 293

8.6 小结 ................................................ 294

详情

随着 JDK 的升级与迭代,Spring Framework 与 Spring Boot 也分别升级到了全新的 6.x 与 3.x 版本。全新的版本带来了更加强大的功能和特性。本书重点讲解 Spring Framework 与 Spring Boot 的高级机制、架构设计和前沿特性,通过源码解读和剖析深入讲解框架底层原理,并对新特性进行详细解读。 本书分为3个部分,共8章。第一部分介绍Spring Framework的IOC容器高级机制与原理;第二部分讲解AOP高级特性与原生设计;第三部分主要讲解Spring整合AI的前沿技术,以及 Spring Framework 6与Spring Boot 3的新版本特性。 本书适合已经有Spring使用基础的开发者、想了解Spring前沿特性的进阶者,以及熟练使用Spring Boot且希望进一步提升技能与认知的探究者阅读和使用。

图书摘要

相关图书

Spring Boot 3:入门与应用实战
Spring Boot 3:入门与应用实战
深入浅出Spring Boot 3.x
深入浅出Spring Boot 3.x
云原生Spring实战Spring Boot与?Kubernetes实践
云原生Spring实战Spring Boot与?Kubernetes实践
Java研发自测入门与进阶
Java研发自测入门与进阶
Spring实战(第6版)
Spring实战(第6版)
Java EE企业级应用开发实战(Spring Boot+Vue+Element)
Java EE企业级应用开发实战(Spring Boot+Vue+Element)

相关文章

相关课程