暂无商品咨询信息 [发表商品咨询]
从Spring底层到自研生态! 本书带你深入IoC容器、动态代理核心机制,实战开发统一Controller、类JPA接口工具,甚至完整复刻Spring生态框架(Universe)。提供JDK 8/21双版本源码,助力开发者掌握架构设计能力,在AI时代脱颖而出!
1. 深入Spring底层机制,掌握框架设计精髓
2. 手把手实战自研类Spring框架及生态
3. 独创高效开发技巧,解决企业级痛点
4. 应对AI时代挑战,培养架构级抽象能力
5. 双版本源码兼容,无缝适配企业环境
本书是Java Web编程之Spring系列,主要介绍Spring生态下的框架编写技巧,以及自编类Spring的大型框架及相关生态的思路和具体实现。本书共分两篇,第1~4章为第1篇,介绍Spring底层的运行原理和动态代理机制;第5~8章为第2篇,是综合实战,展示了在Spring生态下不同类型框架的详细编写方法,以及自编类Spring框架及其“全家桶”的完整实现过程。第1篇的内容是为第2篇服务的,第2篇实战时用到的很多知识和思想均源自第1篇。
本书是一本专注于面向抽象编程的进阶指南,读者对象为依托Spring生态的通用框架编写者,以及基于Spring编码的各层次业务程序员。
第1篇 Spring的重要特性解析
第1章 准备活动/
1.1 相关说明和约定/
1.2 新建Spring Boot项目/
1.2.1 初始化页/
1.2.2 配置微调/
1.2.3 自由编码/
1.3 本章小结/
第2章 Spring运行时的核心组成——Bean/
2.1 控制反转(IoC)和依赖注入(DI)简介/
2.1.1 IoC和DI的思想/
2.1.2 Spring中的IoC容器/
2.2 Bean的获取/
2.2.1 常规依赖注入/
2.2.2 依赖查找/
2.3 Bean的创建和初始化/
2.3.1 模式注解和注解扫描/
2.3.2 配置/
2.3.3 BeanDefinition/
2.3.4 调用接口创建Bean/
2.3.5 @Import注解/
2.3.6 SPI机制/
2.3.7 FactoryBean/
2.3.8 与初始化相关的注解和接口/
2.4 Bean的诞生过程/
2.4.1 BeanFactory与DI、DL的关系/
2.4.2 DL的底层逻辑/
2.4.3 原始Bean的诞生/
2.4.4 DI的底层逻辑和批量注入时的排序机制/
2.4.5 Bean的初始化逻辑/
2.4.6 SmartInitializingSingleton的运行时机/
2.5 Bean相关的其他重要内容/
2.5.1 Spring Boot的主启动流程/
2.5.2 SPI机制实现原理简介/
2.5.3 由Source载入BeanDefinition的过程/
2.5.4 解析配置的过程/
2.6 本章小结/
第3章 属性值/
3.1 常用的值获取/
3.2 使用第三方工具注入值/
3.2.1 静态变量与实例变量的统一注入/
3.2.2 注入至final或static final变量/
3.3 @Value注入的底层逻辑简析/
3.3.1 值查找的底层逻辑/
3.3.2 值注入的底层逻辑/
3.4 本章小结/
第4章 动态代理/
4.1 代理的相关介绍/
4.1.1 静态代理/
4.1.2 使用动态代理/
4.1.3 动态代理实现原理简介/
4.2 注解的底层实现/
4.2.1 编译时处理Retention/
4.2.2 注解的“真实身份”和属性的类型约束/
4.3 本章小结/
第2篇 综 合 实 战
第5章 框架编写的一些原则/
5.1 面向技术的原则/
5.1.1 编程对象的转换/
5.1.2 JDK的版本选择/
5.1.3 第三方组件的取舍/
5.1.4 pom文件的依赖配置/
5.1.5 框架中可以使用的工具类/
5.2 面向用户的原则/
5.2.1 提供给用户的扩展点/
5.2.2 提供默认实现/
5.2.3 降级方案/
5.2.4 扩展点的取舍/
5.3 软件设计之SOLID原则/
5.3.1 单一职责原则(Single Responsibility Principle)/
5.3.2 开闭原则(Open Closed Principle)/
5.3.3 里氏替换原则(Liskov Substitution Principle)/
5.3.4 接口隔离原则(Interface Segregation Principle)/
5.3.5 依赖倒置原则(Dependence Inversion Principle)/
5.4 本章小结/
第6章 统一的Controller——UniController/
6.1 问题起源/
6.2 解析问题并选定方案/
6.3 框架设计/
6.3.1 UniController支持的功能和方法形参设计/
6.3.2 DAO接口的标记/
6.4 具体编码实现/
6.4.1 工程结构/
6.4.2 JDK约定和依赖选择/
6.4.3 UniController的编码实现/
6.4.4 UniService的技术设计/
6.4.5 UniService的技术细节/
6.5 测试/
6.5.1 测试JPA/
6.5.2 测试MyBatis/
6.6 本章小结/
第7章 仿JPA:通过接口方法名执行逻辑——Calculator/
7.1 需求场景和准备/
7.1.1 方法名约定和自定义运算/
7.1.2 定义身份注解和接口/
7.1.3 定义@Enable×××注解/
7.2 具体编写实现/
7.2.1 解析方法名和计算表达式/
7.2.2 编写动态代理之InvocationHandler实现类/
7.2.3 计算拦截器CalculateInterceptor/
7.2.4 启动时扫描用的ImportBeanDefinitionRegistrar/
7.3 测试Calculator框架/
7.3.1 测试模块的pom文件/
7.3.2 编写Calculator用户组件/
7.3.3 编写拦截器CalculateInterceptor/
7.3.4 编写测试代码/
7.4 推广/
7.5 本章小结/
第8章 自编类Spring框架及生态——Universe/
8.1 框架命名/
8.2 Universe核心模块/
8.2.1 核心注解/
8.2.2 核心接口/
8.2.3 大纲及基础工具/
8.2.4 编码实现——基本说明和StarDefinition/
8.2.5 编码实现——StarDefinitionHolder接口/
8.2.6 编码实现——StarDataHolder接口/
8.2.7 Universe的配套接口/
8.2.8 Universe接口及其前置逻辑/
8.2.9 Universe接口之getStar/
8.2.10 Universe其他方法/
8.2.11 Universe的启动流程/
8.3 测试Universe/
8.3.1 通用测试/
8.3.2 独立模块的自动配置/
8.3.3 测试SuperCluster/
8.4 Universe生态下的Web框架——Singularity/
8.4.1 Web框架命名/
8.4.2 注解和接口设计/
8.4.3 SingularityManager接口的设计和准备/
8.4.4 SingularityManager#findAllSingularities方法/
8.4.5 Servlet实现类的设计和具体实现/
8.4.6 SingularitySuperCluster和自动配置类/
8.4.7 启动Servlet容器/
8.4.8 测试Singularity/
8.5 仅三个类的ORM框架——UniverseMybatis/
8.5.1 第一个类:自动配置DataSource和SqlSessionFactory/
8.5.2 第二个类:用于JDK动态代理的InvocationHandler/
8.5.3 第三个类:扫描和自行创建Star的SuperCluster/
8.5.4 测试UniverseMybatis/
8.6 Universe中的AOP框架——Wormhole/
8.6.1 依赖说明/
8.6.2 大致思路/
8.6.3 UniverseJoinPoint组件/
8.6.4 动态代理组件/
8.6.5 StarRound组件和自动配置/
8.6.6 测试Wormhole/
8.7 余兴节目/
8.7.1 无实物表演——丢掉主启动类的main方法/
8.7.2 让我们的应用可以线上部署——打包运行/
8.7.3 未完成或可改进的部分/
8.8 本章小结
基本信息 | |
---|---|
出版社 | 机械工业出版社 |
ISBN | 9787111787105 |
条码 | 9787111787105 |
编者 | 寇波 著 |
译者 | -- |
出版年月 | 2025-08-01 00:00:00.0 |
开本 | 16开 |
装帧 | 平装 |
页数 | 374 |
字数 | 545 |
版次 | 1 |
印次 | 1 |
纸张 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]