作者 |
陈学明 朱智胜 计文柯 |
丛书名 |
出版社 |
机械工业出版社 |
ISBN |
9782109262029 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8071321 - Spring+Spring MVC+MyBatis整合开发实战--------------------------- 本书从实战入手,通过大量示例介绍了Spring+SpringMVC+MyBatis整合开发的相关内容,提升读者对框架的掌握度和理解度,从而实现对框架会用、用对及精用的目标。本书共18章,分为5篇。第1篇Spring核心框架,涵盖Spring概述、Spring IoC容器初探、Web项目环境搭建与项目创建、Spring IoC容器进阶、基于注解和代码的配置、Spring测试;第2篇Spring MVC框架,涵盖Spring Web MVC概述、数据类型转换、验证与异常处理,以及Spring MVC进阶和测试框架;第3篇数据技术,涵盖数据库与Java数据访问技术、MyBatis基本使用、MyBatis进阶、Spring数据访问与事务管理;第4篇SSM整合开发,涵盖SSM整合概述与SSM整合实例;第5篇高级开发技术,涵盖Spring AOP与MVC拦截器,以及Spring Security框架与多线程。本书适合具备Java基础的SSM初学者和进阶开发人员阅读,也适合Java Web开发工程师阅读;对于探究Spring及Spring Boot框架机制与原理的资深工程师也具有参考意义。 ---------------------------8071112 - Spring Boot技术内幕:架构设计与实现原理--------------------------- 本书深入分析了 SpringBoot源代码,教读者从源代码角度了解 SpringBoot的架构、设计思想和重要功能模块的实现原理。 全书共分为三个部分: 第一部分 准备篇(第1章):粗略介绍源码阅读环境的准备、 SpringBoot的整体目录结构、 SpringBoot的设计目标和理念和 SpringBoot的整体框架。 第二部 实现篇(第2~14章)这部分内容是本书的核心,1.5节中会列出SpringBoot的各个核心功能模块,这一部分会逐一去分析这些功能模块的源码,通过源码去讲解各个功能模块的架构、设计思想和实现原理,每个功能模块 用1章的篇幅进行介绍。 第三部分 扩展篇(第15~17章)主要讲解 SpringBoot与周边其他技术的结合,回归到了应用层面,但是具体内容都属于比较高级的知识点,比如SpringBoot打包部署、SpringBoot应用监控、SpringBoot安全(Security)支持等。 . ---------------------------199027 - Spring技术内幕:深入解析Spring架构与设计原理(第2版)--------------------------- 《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛好评,而且在销量上也摘取了同类书的桂冠,曾经一度掀起Java类图书的销售热潮。第2版不仅继承了第1版在内容组织和写作方式上的优点,而且还根据广大读者的反馈改进了若干细节上的不足。更为重要的是,结合Spring的最新版本对过时的内容进行了更新,并增加了大量新内容,使本书更趋近于完美。 《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的优秀架构和设计思想,还能从Spring优雅的实现源码中一窥Java语言的精髓。本书在开篇之前对Spring的设计理念和整体架构进行了全面的介绍,能让读者从宏观上厘清Spring各个功能模块之间的关系;第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二部分深入阐述了各种基于IoC容器和AOP的Java EE组件在Spring中的实现原理;第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。 无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。 |
目录 |
[套装书具体书目] 199027 - Spring技术内幕:深入解析Spring架构与设计原理(第2版) - 9787111365709 - 机械工业出版社 - 定价 69 8071112 - Spring Boot技术内幕:架构设计与实现原理 - 9787111657088 - 机械工业出版社 - 定价 79 8071321 - Spring+Spring MVC+MyBatis整合开发实战 - 9787111658788 - 机械工业出版社 - 定价 159 ---------------------------8071321 - Spring+Spring MVC+MyBatis整合开发实战--------------------------- 前言 第1篇 Spring核心框架 第1章 Spring概述 2 1.1 Spring的由来与发展 2 1.1.1 Java简史 3 1.1.2 Spring编年简史 5 1.2 Spring的概念及理念 6 1.3 Spring框架体系结构 7 1.4 Spring生态圈 10 1.5 Spring资源与社区 12 1.6 Spring综述 13 第2章 Spring IoC容器初探 14 2.1 Spring IoC容器及相关概念 14 2.1.1 组件、框架和容器 14 2.1.2 JavaBean、POJO和EJB简介 16 2.1.3 IoC与DI简介 17 2.1.4 Spring与EJB简介 19 2.2 Spring容器初始化 20 2.2.1 BeanFactory与ApplicationContext 20 2.2.2 ApplicationContext初始化方式 21 2.2.3 Spring基于XML的配置文件结构 23 2.2.4 Bean的配置方式 24 2.2.5 哪些类需要配置成Bean 25 2.2.6 容器的关闭 25 2.2.7 Spring容器的定义 26 2.3 依赖注入与方式 26 2.3.1 构造函数注入 27 2.3.2 设置值注入 28 第3章 Web项目环境搭建与项目创建 30 3.1 环境与前置准备 30 3.1.1 JDK的下载与安装 30 3.1.2 Eclipse的下载与安装 32 3.1.3 Tomcat的下载与安装 33 3.1.4 MySQL的下载与安装 34 3.1.5 Maven的下载与安装 35 3.2 基于Maven和Eclipse建立项目 36 3.2.1 在Eclipse中创建Maven Web项目 37 3.2.2 将Maven创建的Web项目导入Eclipse中 38 3.2.3 Eclipse编译器和项目特性修改 39 3.3 Spring框架导入与项目 41 3.3.1 Spring核心包及相关依赖包的导入 41 3.3.2 项目结构及创建 42 3.4 简单的完整实例 43 第4章 Spring IoC容器进阶 46 4.1 Bean实例化的更多方式 46 4.1.1 静态内部类 46 4.1.2 静态工厂方法 47 4.1.3 实例工厂方法 47 4.2 Bean的配置属性 48 4.2.1 Bean的作用域配置 49 4.2.2 Bean初始化或销毁的生命周期回调 50 4.2.3 懒加载Bean 51 4.2.4 Bean定义的继承 52 4.3 依赖注入的配置 53 4.3.1 多个对象的依赖注入 53 4.3.2 简单类型的依赖注入 55 4.3.3 集合类型的依赖注入 58 4.3.4 内部Bean的依赖注入 59 4.3.5 Bean方法的替换 59 4.3.6 自动装配 60 4.4 特殊的依赖配置 61 4.4.1 depends-on前置依赖配置 61 4.4.2 方法注入—不同作用域Bean的依赖配置 62 4.4.3 循环依赖的解决 63 4.5 XML配置进阶 64 4.5.1 依赖注入配置的简写 64 4.5.2 多XML配置文件 64 4.6 容器与Bean扩展点 65 4.6.1 全局与容器生命周期回调 65 4.6.2 容器加载定义扩展—BeanFactoryPostProcessor 66 4.6.3 容器扩展点—BeanPostProcessor 68 4.6.4 Aware接口—获取容器资源 68 4.7 Spring IoC容器综述 70 第5章 基于注解和代码的配置 73 5.1 Java注解 73 5.1.1 Java基本注解 73 5.1.2 Java注解标准 75 5.2 Spring支持的注解类型与开启方式 76 5.2.1 Spring支持的注解类型 76 5.2.2 Spring注解功能的开启方式 77 5.3 Spring支持的Java标准注解 78 5.3.1 @PostConstruct和@PreDestroy 78 5.3.2 @Named—组件注解 78 5.3.3 @Resource—依赖注入注解 79 5.3.4 @Inject—依赖注入 79 5.4 Spring容器配置注解 80 5.4.1 @Required—依赖项检查 80 5.4.2 @Autowired—依赖对象的自动装配 81 5.4.3 @Component—组件注解 82 5.4.4 @Bean—方法层级的组件注解 85 5.5 自动装配的更多介绍 86 5.5.1 自动装配的required配置 86 5.5.2 自动装配的顺序和选择 86 5.5.3 自动装配的使用 89 5.6 基于Java代码的配置 89 5.6.1 @Configuration——配置类注解 90 5.6.2 Java代码配置的容器初始化 90 5.6.3 @ComponentScan—组件扫描注解 91 5.6.4 @Import—配置类导入注解 92 5.7 容器注解汇总 92 第6章 Spring测试 94 6.1 关于测试 94 6.1.1 单元测试 95 6.1.2 集成测试 97 6.1.3 测试的一些概念 97 6.2 Java测试框架 98 6.2.1 JUnit单元测试框架 98 6.2.2 JUnit批量测试 102 6.2.3 JUnit运行器 103 6.2.4 JUnit 4与JUnit 5的比较 104 6.2.5 TestNG简介及与JUnit的比较 105 6.3 基于Spring的测试 106 6.3.1 JUnit中加入Spring容器进行测试 106 6.3.2 Spring测试模块 108 6.3.3 Spring测试模块对单元测试的支持 109 6.3.4 Spring测试框架 111 6.4 Spring测试注解 116 6.4.1 Spring测试专用的注解 116 6.4.2 测试支持的标准注解 119 6.4.3 基于JUnit 4支持的注解 121 6.4.4 基于JUnit Jupiter(JUnit 5)支持的注解 123 6.5 测试框架注解汇总 125 第2篇 Spring MVC框架 第7章 Spring Web MVC概述 128 7.1 HTTP Web基础知识 128 7.1.1 HTML与HTTP 128 7.1.2 HTTP请求类型 129 7.1.3 MIME类型 129 7.1.4 状态码 130 7.2 Java Web开发 131 7.2.1 Servlet技术 131 7.2.2 JSP技术 138 7.2.3 MVC模式 141 7.3 Spring MVC介绍与实例 141 7.3.1 Spring MVC框架处理流程 142 7.3.2 Spring Web快速Demo实例 143 7.4 Spring MVC技术细节 146 7.4.1 DispatcherServlet—中央控制器 146 7.4.2 HandlerMapping—处理器映射器 148 7.4.3 HandlerAdapter—处理器适配器 150 7.4.4 视图与视图解析器 153 7.5 Spring MVC注解配置 155 7.5.1 组件与依赖注解 156 7.5.2 请求映射与参数注解 156 7.5.3 @ModelAttribute模型属性注解 160 7.6 基于代码配置的Spring MVC项目 162 7.6.1 Java代码进行Spring MVC的容器配置 162 7.6.2 Java代码替代web.xml文件的入口配置 163 7.7 MVC注解汇总 164 第8章 数据类型的转换、验证与异常处理 166 8.1 类型转换 166 8.1.1 属性编辑器:PropertyEditor 166 8.1.2 转换器服务:ConversionService 168 8.1.3 类型转换在容器中的使用 173 8.2 数据绑定 176 8.2.1 Bean封装器:BeanWrapper 176 8.2.2 数据绑定器:DataBinder与WebDataBinder 178 8.2.3 绑定器初始化注解:@InitBinder 180 8.2.4 HTTP消息转换器:HttpMessageConverter 181 8.3 数据验证 184 8.3.1 JavaBean标准校验 184 8.3.2 Spring核心容器的验证 186 8.3.3 Spring MVC容器的验证 188 8.3.4 验证器配置及增加自定义验证器 189 8.3.5 验证器使用层级及手动调用 191 8.4 Spring MVC异常处理 192 8.4.1 Controller类层级异常处理:@ExceptionHandler 192 8.4.2 全局的异常处理:@ControllerAdvice 193 8.4.3 XML配置异常处理 194 第9章 Spring MVC进阶 195 9.1 静态资源的放行 195 9.1.1 配置Servlet处理静态资源 196 9.1.2 配置放行动态资源 196 9.1.3 配置放行动态资源 197 9.2 父子容器 197 9.2.1 Spring的父子容器 197 9.2.2 Spring MVC的父子容器 200 9.2.3 Spring MVC父子容器的配置 202 9.3 Spring MVC与JSON 204 9.3.1 JSON介绍 204 9.3.2 Java对JSON的支持 206 9.3.3 Spring MVC使用JSON 210 9.4 Spring MVC与REST 214 9.4.1 REST的概念与应用 214 9.4.2 Spring MVC REST服务端:@RestController 218 9.4.3 Spring MVC REST客户端:RestTemplate 219 9.5 文件上传 223 9.5.1 多部分表单数据类型:multipart/form-data 223 9.5.2 Java文件上传功能实现方式 225 9.5.3 Spring MVC 文件上传功能的实现方式 228 9.5.4 Spring MVC文件上传最佳实践 231 9.6 国际化 233 9.6.1 Java国际化 233 9.6.2 Spring国际化 236 9.6.3 Spring MVC国际化 237 9.6.4 语言环境解析器:LocaleResolver 239 9.6.5 Spring MVC语言环境的动态修改 244 9.6.6 Spring MVC国际化的使用 245 第10章 Spring MVC测试框架 247 10.1 Spring MVC测试概述 247 10.1.1 Spring MVC的测试方式 247 10.1.2 Spring Web测试实例与测试的整体框架 248 10.2 模拟应用服务(MockMvc)及其构建器 251 10.2.1 独立测试MockMvc构建器:StandaloneMockMvcBuilder 251 10.2.2 集成测试MockMvc构建器:DefaultMockMvcBuilder 252 10.3 模拟请求构造器 254 10.3.1 模拟请求参数传递 255 10.3.2 模拟请求构造器的请求相关设置 257 10.4 结果操作 258 10.4.1 结果操作接口:ResultActions 259 10.4.2 结果匹配器接口:ResultMatcher 260 10.4.3 结果处理器:MockMvcResultHandlers 265 10.4.4 获取MvcResult后自定义验证 266 10.5 Spring MVC测试框架之其他 266 10.5.1 测试代码简写 267 10.5.2 独立测试的依赖处理 268 10.5.3 文件上传测试 268 第3篇 数据技术 第11章 数据库与Java数据访问技术 272 11.1 关系型数据库介绍 272 11.1.1 关系型数据库产品 272 11.1.2 关系型数据库及其对象 273 11.1.3 关系型数据库事务 274 11.1.4 SQL语言 276 11.2 MySQL数据库 276 11.2.1 MySQL数据类型 277 11.2.2 基于MySQL的基本SQL语句 279 11.2.3 MySQL高级对象与功能 281 11.3 Java数据访问基本技术 284 11.3.1 JDBC数据访问 284 11.3.2 Java数据库连接池 288 11.3.3 线程安全的数据库连接 293 11.4 ORM框架介绍 294 11.4.1 Java常见的ORM框架 294 11.4.2 Hibernate开发步骤与实例 295 11.5 JPA—Java持久层应用接口 298 11.5.1 JPA的主要内容 299 11.5.2 JPA的主要概念和类 301 11.5.3 JPA开发规范与步骤 303 11.5.4 JPA之Hibernate实现实例 303 11.5.5 JPA之Eclipse Link实现实例 305 第12章 MyBatis入门 310 12.1 MyBatis介绍与快速入门实例 310 12.1.1 MyBatis介绍 310 12.1.2 MyBatis快速入门实例 311 12.2 MyBatis核心接口和类 314 12.2.1 SqlSession(SQL会话接口) 315 12.2.2 SqlSessionFactory(SQL会话工厂接口) 316 12.2.3 SqlSessionFactoryBuilder(SQL会话工厂构建类) 316 12.2.4 Configuration(配置类) 317 12.3 MyBatis XML全局配置文件 318 12.3.1 配置文件的结构 318 12.3.2 环境配置 319 12.3.3 属性与属性文件配置 321 12.3.4 映射引用配置 322 12.3.5 MyBatis特性设置 323 12.4 XML映射文件配置 325 12.4.1 基本查询映射配置 326 12.4.2 嵌套映射 330 12.4.3 、和语句配置 336 12.4.4 可重用SQL代码段() 338 第13章 MyBatis进阶 339 13.1 MyBatis内部运作解密 339 13.1.1 SqlSessionFactory的构建和类型 340 13.1.2 会话工厂创建会话的流程 340 13.1.3 Mapper映射器接口的运作方式 341 13.1.4 SqlSession和Executor如何执行SQL语句 342 13.2 MyBatis全局配置进阶 343 13.2.1 类型处理器 343 13.2.2 类型别名 345 13.2.3 对象工厂 346 13.2.4 插件 346 13.2.5 数据库提供商配置 347 13.3 动态SQL 348 13.3.1 条件判断 和条件语句 348 13.3.2 多分支选择标签、和 349 13.3.3 循环标签 349 13.4 MyBatis日志 350 13.4.1 Commons Logging +Log4j2搭建MyBatis日志方案实例 351 13.4.2 日志开启层级 352 13.5 MyBatis缓存 353 13.5.1 一级缓存 354 13.5.2 二级缓存 356 13.5.3 缓存补充介绍 359 13.6 MyBatis其他 360 13.6.1 基于注解映射及SQL语句构造器 360 13.6.2 Oracle自增长主键解决:selectKey 361 13.6.3 使用C3P0连接池 363 第14章 Spring数据访问与事务管理 364 14.1 Spring JDBC模板类 364 14.1.1 JdbcTemplate的使用 364 14.1.2 JdbcTemplate使用连接池数据源 366 14.2 Spring DAO支持 368 14.2.1 DAO的概念 368 14.2.2 基于JdbcTemplate的DAO层实例 369 14.2.3 Spring DAO支持类:DaoSupport 371 14.3 Spring整合ORM框架及JPA 372 14.3.1 Spring与Hibernate的整合概览 373 14.3.2 Spring与JPA的整合概览 374 14.4 Spring事务处理 375 14.4.1 Java事务处理 375 14.4.2 Spring事务管理 377 14.4.3 基于数据源事务管理器的编程式事务 380 14.4.4 基于数据源事务管理器的声明式事务 385 14.4.5 Spring MVC事务处理其他 390 第4篇 SSM整合开发 第15章 SSM整合概述 396 15.1 SSM整合综述 396 15.1.1 开发架构选择 396 15.1.2 SSM整合技术选型与导入 398 15.1.3 集成开发平台与开发工具 403 15.1.4 配置开发与注解开发 409 15.2 Spring与Spring MVC整合 410 15.2.1 配置Spring MVC父子容器 410 15.2.2 核心容器配置application.xml 411 15.2.3 Spring MVC容器配置spring-mvc.xml 412 15.3 Spring与MyBatis整合 414 15.3.1 整合的主要组件类 414 15.3.2 SSM整合方式 415 15.3.3 映射器配置 417 15.3.4 Spring与MyBatis整合事务管理 418 15.4 SSM异常整合与处理 421 15.4.1 Spring MVC异常处理的接口和类 422 15.4.2 Spring MVC异常处理器配置 425 15.4.3 JSON类型返回的异常处理器 428 15.5 Java日志与SSM日志整合 430 15.5.1 Log4j和Log4j2 430 15.5.2 Log4j2使用介绍 433 15.5.3 Log4j与JCL整合 436 15.5.4 SSM日志整合 438 第16章 SSM整合实例 442 16.1 项目需求、系统架构与系统设计 442 16.1.1 项目需求 442 16.1.2 系统架构 443 16.1.3 系统设计 446 16.2 项目框架搭建(SSM+Ext JS) 447 16.2.1 Eclipse+Maven创建多模块项目 447 16.2.2 后端项目(daport-backend)依赖和配置 455 16.2.3 前端项目(daport-front)搭建 464 16.2.4 前后端整合思路及开发方式 468 16.3 daport-backend后端开发 471 16.3.1 使用ERMaster设计表并产生SQL 471 16.3.2 MyBatis Generator产生实体类、映射接口及映射配置文件 473 16.3.3 用户请求服务与开发 474 16.4 daport-frontend前端开发 478 16.4.1 前端项目 478 16.4.2 主页面开发 478 16.4.3 用户管理页面开发 482 16.5 前后端整合开发 486 16.5.1 系统登录 486 16.5.2 国际化 488 16.5.3 用户管理前后端的整合 490 16.5.4 文件上传 491 16.5.5 统一异常处理 493 16.6 测试、调试与部署 494 16.6.1 后端daport-backend代码测试 494 16.6.2 后端daport-backend调试 496 16.6.3 前端daport-frontend调试 498 第5篇 高级开发技术 第17章 Spring AOP与MVC拦截器 502 17.1 AOP介绍及Java代理 502 17.1.1 AOP的应用场景及基本概念 503 17.1.2 Java代理实现 504 17.1.3 CGLIB动态代理库 507 17.2 Java AOP框架—AspectJ 509 17.2.1 使用Eclipse AJDT开发AspectJ实例 509 17.2.2 AspectJ切点执行表达式 510 17.2.3 AspectJ注解开发 511 17.3 Spring AOP框架解密 512 17.3.1 Spring AOP框架及代理实现 512 17.3.2 代理工厂Bean:ProxyFactoryBean 515 17.3.3 增强器:Advisor 517 17.3.4 基于XML的AOP配置 520 17.3.5 基于注解的AOP配置 522 17.3.6 Spring AOP与AspectJ的关系 524 17.4 MVC拦截器与过滤器 524 17.4.1 Spring MVC拦截器 524 17.4.2 Servlet 过滤器与Spring实现的过滤器 526 17.4.3 过滤器与拦截器的关系 529 第18章 Spring Security框架与多线程 531 18.1 Spring Security概述与Web请求认证 531 18.1.1 Spring Security快速入门示例 531 18.1.2 Spring Security用户认证配置标签 534 18.1.3 Spring Security密码加密 537 18.2 Spring Security方法层级授权 538 18.2.1 单个Bean方法保护的配置 538 18.2.2 方法的安全注解 539 18.2.3 全局安全切点配置 541 18.3 Spring Security机制解密 541 18.3.1 Spring Security实现机制 541 18.3.2 AuthenticationManager(认证管理器)核心接口及运作原理 542 18.3.3 AccessDecisionManager(访问决策管理器) 544 18.3.4 SecurityMetadataSource(安全元数据源) 545 18.3.5 SecurityInterceptor(安全拦截器) 546 18.4 Spring Security代码配置与测试 548 18.4.1 Spring Security基于代码配置 549 18.4.2 Spring Security单元测试 551 18.5 Spring Security实战 554 18.5.1 自定义登录页面 554 18.5.2 常见错误及解决方法 555 18.6 多线程与线程安全 556 18.6.1 Java线程创建与执行 557 18.6.2 Java线程安全问题 558 18.6.3 共享变量的线程安全解决方式 559 18.6.4 ThreadLocal解决线程安全 561 18.6.5 Spring中ThreadLocal的使用 563 ---------------------------8071112 - Spring Boot技术内幕:架构设计与实现原理--------------------------- 前 言 第一部分 准备篇 第1章 阅读代码前的准备 2 1.1 获取和调试Spring Boot源代码 2 1.1.1 获取Spring Boot的源代码 2 1.1.2 调试Spring Boot的源代码 3 1.2 Spring Boot源代码的结构 3 1.2.1 Spring Boot的整体项目结构 4 1.2.2 spring-boot-project项目结构 5 1.3 源代码阅读工具 5 1.4 Spring Boot的设计理念和目标 6 1.4.1 设计理念 7 1.4.2 设计目标 7 1.5 Spring Boot的整体架构 7 第二部分 原理篇 第2章 Spring Boot核心运行原理 10 2.1 核心运行原理 10 2.2 运作原理源码解析之@EnableAuto-Configuration 11 2.2.1 入口类和@SpringBootApplication注解 11 2.2.2 注解@EnableAutoConfiguration功能解析 14 2.3 AutoConfigurationImportSelector源码解析 15 2.3.1 @Import注解 16 2.3.2 ImportSelector接口 16 2.3.3 AutoConfigurationImportSelector功能概述 17 2.3.4 @EnableAutoConfiguration自动配置开关 18 2.3.5 @EnableAutoConfiguration加载元数据配置 19 2.3.6 @EnableAutoConfiguration加载自动配置组件 21 2.3.7 @EnableAutoConfiguration排除指定组件 24 2.3.8 @EnableAutoConfiguration过滤自动配置组件 25 2.3.9 @EnableAutoConfiguration事件注册 32 2.4 @Conditional条件注解 33 2.4.1 认识条件注解 33 2.4.2 条件注解的衍生注解 34 2.5 实例解析 39 2.6 小结 41 第3章 Spring Boot构造流程源码分析 42 3.1 SpringApplication的初始化简介 42 3.2 SpringApplication实例化流程 43 3.3 SpringApplication构造方法参数 44 3.4 Web应用类型推断 45 3.5 ApplicationContextInitializer加载 47 3.5.1 源码解析 47 3.5.2 实例讲解 49 3.6 ApplicationListener加载 50 3.7 入口类推断 51 3.8 SpringApplication的定制化配置 52 3.8.1 基础配置 52 3.8.2 配置源配置 53 3.9 小结 54 第4章 Spring Boot运行流程源码分析 55 4.1 run方法核心流程 55 4.2 SpringApplicationRunListener监听器 57 4.2.1 监听器的配置与加载 57 4.2.2 SpringApplicationRunListener源码解析 59 4.2.3 实现类EventPublishingRun-Listener 60 4.2.4 自定义SpringApplicationRun-Listener 62 4.3 初始化ApplicationArguments 63 4.4 初始化ConfigurableEnvironment 63 4.4.1 获取或创建环境 65 4.4.2 配置环境 66 4.5 忽略信息配置 68 4.6 打印Banner 68 4.7 Spring应用上下文的创建 69 4.8 Spring应用上下文的准备 70 4.8.1 应用上下文准备阶段 71 4.8.2 应用上下文加载阶段 73 4.9 Spring应用上下文的刷新 75 4.10 调用ApplicationRunner和CommandLineRunner 77 4.11 小结 78 第三部分 内置组件篇 第5章 Spring Boot外化配置源码解析 80 5.1 外化配置简介 80 5.2 ApplicationArguments 参数处理 81 5.2.1 接口定义及初始化 81 5.2.2 使用实例 85 5.3 命令参数的获取 86 5.4 配置文件的加载 88 5.5 基于Profile的处理实现 93 5.6 综合实战 97 5.7 小结 102 第6章 Spring Boot Web应用源码解析 103 6.1 遗失的web.xml 103 6.2 Web应用的自动配置 104 6.2.1 DispatcherServlet自动配置 105 6.2.2 DispatcherServletRegistrationBean自动配置 108 6.3 Spring MVC的自动配置 111 6.3.1 ViewResolver解析 112 6.3.2 静态资源的支持 114 6.3.3 静态index.html 115 6.4 综合实战 117 6.5 小结 120 第7章 Spring Boot 内置Servlet容器源码解析 121 7.1 Web容器自动配置 121 7.1.1 Servlet Web服务器概述 121 7.1.2 自动配置源码分析 122 7.2 WebServer初始化过程 128 7.3 DispatcherServlet的加载过程 134 7.3.1 DispatcherServlet的获取 134 7.3.2 DispatcherServlet的加载 138 7.4 综合实战 140 7.5 小结 141 第8章 Spring Boot 数据库配置源码解析 142 8.1 自动配置注解解析 142 8.2 自动配置内部实现解析 150 8.2.1 EmbeddedDatabase-Configuration 151 8.2.2 PooledDataSource-Configuration 155 8.3 JdbcTemplateAutoConfiguration 157 8.4 异常案例分析 159 8.5 小结 159 第9章 Spring Boot 消息源码解析 160 9.1 JMS基础自动配置 160 9.1.1 JmsAutoConfiguration的注解 160 9.1.2 JmsAutoConfiguration内部实现 164 9.2 ActiveMQ自动配置 166 9.3 @JmsListener注解解析 173 9.4 小结 175 第10章 Spring Boot Cache源码解析 176 10.1 Cache简介 176 10.2 Cache自动配置 177 10.3 默认Cache配置 183 10.4 小结 188 第11章 Spring Boot 日志源码解析 189 11.1 LoggingApplicationListener的触发 189 11.2 LoggingApplicationListener的执行 191 11.2.1 ApplicationStartingEvent事件处理 192 11.2.2 ApplicationEnvironment-PreparedEvent事件处理 196 11.3 小结 203 第12章 实战:创建Spring Boot自动配置项目 204 12.1 自定义Spring Boot Starter项目 204 12.2 Starter测试使用 207 12.3 小结 208 第四部分 外置组件篇 第13章 Spring Boot单元测试 210 13.1 Spring Boot对单元测试的支持 210 13.2 常用单元测试注解 211 13.3 JUnit5单元测试示例 212 13.4 Web应用单元测试 214 13.5 MockMvc的自动配置 217 13.5.1 AutoConfigureMockMvc注解 217 13.5.2 MockMvcAutoConfiguration自动配置 219 13.6 小结 221 第14章 Spring Boot打包部署解析 222 14.1 Spring Boot的jar包 222 14.1.1 jar包的生成 222 14.1.2 jar包的结构 227 14.2 Launcher实现原理 227 14.2.1 JarLauncher 228 14.2.2 WarLauncher 232 14.3 小结 234 第15章 Spring Boot 应用监控解析 235 15.1 Actuator简介 235 15.2 Actuator自动配置 237 15.2.1 HealthEndpoint自动配置 237 15.2.2 HealthIndicator实现 240 15.3 Actuator端点展示 244 15.4 小结 247 第16章 Spring Boot Security支持 248 16.1 Security自动配置 248 16.2 SecurityAutoConfiguration详解 249 16.3 SecurityFilterAutoConfiguration详解 255 16.4 小结 257 ---------------------------199027 - Spring技术内幕:深入解析Spring架构与设计原理(第2版)--------------------------- 《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》 前言 第1章 Spring的设计理念和整体架构 / 1 1.1 Spring的各个子项目 / 2 1.2 Spring的设计目标 / 5 1.3 Spring的整体架构 / 7 1.4 Spring的应用场景 / 10 1.5 小结 / 12 第一部分 Spring核心实现篇 第2章 Spring Framework的核心:IoC容器的实现 / 16 2.1 Spring IoC容器概述 / 17 2.1.1 IoC容器和依赖反转模式 / 17 2.1.2 Spring IoC的应用场景 / 18 2.2 IoC容器系列的设计与实现:BeanFactory和ApplicationContext / 19 2.2.1 Spring的IoC容器系列 / 19 2.2.2 Spring IoC容器的设计 / 21 2.3 IC容器的初始化过程 / 28 2.3.1 BeanDefinition的Resource定位 / 29 2.3.2 BeanDefinition的载入和解析 / 37 2.3.3 BeanDefinition在IoC容器中的注册 / 52 2.4 IoC容器的依赖注入 / 54 2.5 容器其他相关特性的设计与实现 / 75 2.5.1 ApplicationContext和Bean的初始化及销毁 / 75 2.5.2 lazy-init属性和预实例化 / 81 2.5.3 FactoryBean的实现 / 82 2.5.4 BeanPostProcessor的实现 / 85 2.5.5 autowiring(自动依赖装配)的实现 / 88 2.5.6 Bean的依赖检查 / 90 2.5.7 Bean对IoC容器的感知 / 91 2.6 小结 / 92 第3章 Spring AOP的实现 / 94 3.1 Spring AOP概述 / 95 3.1.1 AOP概念回顾 / 95 3.1.2 Advice通知 / 98 3.1.3 Pointcut切点 / 102 3.1.4 Advisor通知器 / 105 3.2 Spring AOP的设计与实现 / 106 3.2.1 JVM的动态代理特性 / 106 3.2.2 Spring AOP的设计分析 / 108 3.2.3 Spring AOP的应用场景 / 108 3.3 建立AopProxy代理对象 / 109 3.3.1 设计原理 / 109 3.3.2 配置ProxyFactoryBean / 110 3.3.3 ProxyFactoryBean生成AopProxy代理对象 / 111 3.3.4 JDK生成AopProxy代理对象 / 116 3.3.5 CGLIB生成AopProxy代理对象 / 117 3.4 Spring AOP拦截器调用的实现 / 119 3.4.1 设计原理 / 119 3.4.2 JdkDynamicAopProxy的invoke拦截 / 120 3.4.3 Cglib2AopProxy的intercept拦截 / 121 3.4.4 目标对象方法的调用 / 122 3.4.5 AOP拦截器链的调用 / 123 3.4.6 配置通知器 / 124 3.4.7 Advice通知的实现 / 129 3.4.8 ProxyFactory实现AOP / 136 3.5 Spring AOP的高级特性 / 138 3.6 小结 / 140 第二部分 Spring组件实现篇 第4章 Spring MVC与Web环境 / 145 4.1 Spring MVC概述 / 146 4.2 Web环境中的Spring MVC / 148 4.3 上下文在Web容器中的启动 / 149 4.3.1 IoC容器启动的基本过程 / 149 4.3.2 Web容器中的上下文设计 / 151 4.3.3 ContextLoader的设计与实现 / 154 4.4 Spring MVC的设计与实现 / 158 4.4.1 Spring MVC的应用场景 / 158 4.4.2 Spring MVC设计概览 / 158 4.4.3 DispatcherServlet的启动和初始化 / 160 4.4.4 MVC处理HTTP分发请求 / 166 4.5 Spring MVC视图的呈现 / 178 4.5.1 DispatcherServlet视图呈现的设计 / 178 4.5.2 JSP视图的实现 / 182 4.5.3 ExcelView的实现 / 185 4.5.4 PDF视图的实现 / 187 4.6 小结 / 189 第5章 数据库操作组件的实现 / 191 5.1 Spring JDBC的设计与实现 / 192 5.1.1 应用场景 / 192 5.1.2 设计概要 / 192 5.2 Spring JDBC中模板类的设计与实现 / 193 5.2.1 设计原理 / 193 5.2.2 JdbcTemplate的基本使用 / 193 5.2.3 JdbcTemplate的execute实现 / 194 5.2.4 JdbcTemplate的query实现 / 196 5.2.5 使用数据库Connection / 197 5.3 Spring JDBC中RDBMS操作对象的实现 / 199 5.3.1 SqlQuery的实现 / 200 5.3.2 SqlUpdate的实现 / 204 5.3.3 SqlFunction / 206 5.4 Spring ORM的设计与实现 / 208 5.4.1 应用场景 / 208 5.4.2 设计概要 / 208 5.5 Spring驱动Hibernate的设计与实现 / 209 5.5.1 设计原理 / 210 5.5.2 Hibernate的SessionFactory / 210 5.5.3 HibernateTemplate的实现 / 215 5.5.4 Session的管理 / 219 5.6 Spring驱动iBatis的设计与实现 / 222 5.6.1 设计原理 / 222 5.6.2 创建SqlMapClient / 222 5.6.3 SqlMapClientTemplate的实现 / 224 5.7 小结 / 227 第6章 Spring事务处理的实现 / 228 6.1 Spring与事务处理 / 229 6.2 Spring事务处理的设计概览 / 229 6.3 Spring事务处理的应用场景 / 230 6.4 Spring声明式事务处理 / 231 6.4.1 设计原理与基本过程 / 231 6.4.2 实现分析 / 231 6.5 Spring事务处理的设计与实现 / 241 6.5.1 Spring事务处理的编程式使用 / 241 6.5.2 事务的创建 / 242 6.5.3 事务的挂起 / 249 6.5.4 事务的提交 / 251 6.5.5 事务的回滚 / 253 6.6 Spring事务处理器的设计与实现 / 255 6.6.1 Spring事务处理的应用场景 / 255 6.6.2 DataSourceTransactionManager的实现 / 256 6.6.3 HibernateTransactionManager的实现 / 259 6.7 小结 / 265 第7章 Spring远端调用的实现 / 267 7.1 Spring远端调用的应用场景 / 268 7.2 Spring远端调用的设计概览 / 268 7.3 Spring远端调用的实现 / 271 7.3.1 Spring HTTP调用器的实现 / 271 7.3.2 Spring Hession/Burlap的实现原理 / 282 7.3.3 Spring RMI的实现 / 295 7.4 小结 / 302 第三部分 Spring应用实现篇 第8章 安全框架ACEGI的设计与实现 / 307 8.1 Spring ACEGI安全框架概述 / 308 8.1.1 概述 / 308 8.1.2 设计原理与基本实现过程 / 308 8.1.3 ACEGI的Bean配置 / 309 8.2 配置Spring ACEGI / 310 8.3 ACEGI的Web过滤器实现 / 313 8.4 ACEGI验证器的实现 / 315 8.4.1 AuthenticationManager的authenticate / 315 8.4.2 DaoAuthenticationProvider的实现 / 318 8.4.3 读取数据库用户信息 / 320 8.4.4 完成用户信息的对比验证 / 323 8.5 ACEGI授权器的实现 / 324 8.5.1 与Web环境的接口FilterSecurityInterceptor / 324 8.5.2 授权器的实现 / 327 8.5.3 投票器的实现 / 329 8.6 小结 / 330 第9章 Spring DM模块的设计与实现 / 332 9.1 Spring DM模块的应用场景 / 333 9.2 Spring DM的应用过程 / 334 9.3 Spring DM设计与实现 / 338 9.4 小结 / 348 第10章 Spring Flex的设计与实现 / 350 10.1 Spring Flex模块的应用场景 / 351 10.2 Spring Flex的应用过程 / 353 10.3 Spring Flex的设计与实现 / 355 10.4 小结 / 362 附录A Spring项目的源代码环境 / 363 附录B 构建Spring项目的发布包 / 378 附录C 使用Spring IDE / 381 附录D Spring Pet Clinic应用实例 / 385 |