Spring技术内幕
Spring技术内幕——深入解析Spring架构与设计原理
图 书 内 容
本书是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔!Java开发者社区和Spring开发者社区一致强烈推荐。
国内第一本基于Spring 3.0的著作,从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的优秀架构和设计思想,而且还能从Spring优雅的实现源码中一窥Java语言的精髓。此外,本书还展示了阅读源代码的卓越方法,不仅授你以鱼,而且还授你以渔!
如果你以一种淡定的心态翻开这本书,无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中受益。
本 书 赞 誉
作为一个有近10年历史的成功框架,Spring在Java开发中具有举足轻重的作用。本书从源代码分析入手,对Spring的架构原理和设计思想进行了全面剖析,不仅能让我们更深入、更彻底地认识Spring,领略Spring的架构之美和设计之美,而且更重要的是,它将全面提升我们的Spring开发技能。
——Spring开发者社区
这是值得所有Spring开发者反复研读的一本书。Spring是一个优秀的轻量级企业应用开发框架,是Java开发中最流行的工具之一,也是Java程序员必须熟练掌握的一门技术之一。本书从Spring实现原理的角度揭开了Spring的神秘面纱,使得我们在利用Spring进行开发时,不仅能知其然,还能知其所以然,从本质上提升我们对Spring的理解和开发水平。
——Spring中文用户组
这是所有Java程序员应该认真阅读的一本书。Spring框架主要是用Java语言来实现的,本书对大量经典的、优雅的Spring实现代码进行了赏析,不禁让我们感慨Rod Johnson(Spring之父)对Java语言的运用之精妙。如果能跟随本书穿越Spring源代码的丛林,也许我们对Java语言的理解和掌握将会有质的飞跃。
——中文Java技术网
这是所有软件架构师必备的一本书。成为一名出色的软件架构师,也许是每一位开发者的梦想。在成长为架构师的过程中,在实践中积累并总结经验固然很重要,但是从现有的成功架构中取经也是必不可少的。本书对Spring的各个功能模块的架构原理和设计思想进行了深入剖析,值得所有架构师用心体会和研究,必将受益匪浅。
——架构师中国
目 录
本书赞誉
前 言
致 谢
第1章 准备源代码环境 1
1.1 安装JDK 1
1.2 安装Eclipse 1
1.3 安装辅助工具 2
1.4 获取Spring源代码 8
1.5 Spring源代码的组织结构 10
1.6 小结 12
第一部分 Spring核心实现篇
第2章 Spring Framework的核心:IoC容器的实现 16
2.1 Spring IoC容器概述 16
2.1.1 IoC容器和依赖反转模式 16
2.1.2 Spring的IoC容器系列 18
2.2 IoC容器系列的实现:BeanFactory和ApplicationContext 20
2.2.1 BeanFactory对IoC容器的功能定义 20
2.2.2 IoC容器XmlBeanFactory的工作原理 22
2.2.3 ApplicationContext的特点 24
2.3 IoC容器的初始化 25
2.3.1 BeanDefinition的Resource定位 26
2.3.2 BeanDefinition的载入和解析 33
2.3.3 BeanDefinition在IoC容器中的注册 47
2.4 IoC容器的依赖注入 49
2.5 容器其他相关特性的实现 70
2.5.1 lazy-init属性和预实例化 70
2.5.2 FactoryBean的实现 73
2.5.3 BeanPostProcessor的实现 75
2.5.4 autowiring的实现原理 78
2.6 小结 80
第3章 Spring AOP的实现 82
3.1 Spring AOP概述 82
3.1.1 AOP概念回顾 82
3.1.2 Advice通知 84
3.1.3 Pointcut切点 88
3.1.4 Advisor通知器 90
3.2 建立AopProxy代理对象 92
3.2.1 配置ProxyFactoryBean 92
3.2.2 ProxyFactoryBean生成AopProxy 94
3.2.3 JDK生成AopProxy代理对象 98
3.2.4 CGLIB生成AopProxy代理对象 99
3.3 Spring AOP拦截器调用的实现 101
3.3.1 JdkDynamicAopProxy的invoke拦截 101
3.3.2 Cglib2AopProxy的intercept拦截 103
3.3.3 目标对象方法的调用 105
3.3.4 AOP拦截器链的调用 105
3.3.5 配置通知器 107
3.3.6 Advice通知的实现 112
3.3.7 ProxyFactory实现AOP 118
3.4 Spring AOP的高级特性 120
3.5 小结 121
第二部分 Spring组件实现篇
第4章 Spring MVC与Web环境 127
4.1 概述 127
4.2 Web环境中的Spring MVC 128
4.3 IoC容器在Spring MVC中的启动 130
4.3.1 Web容器中的上下文 130
4.3.2 ContextLoader建立Web环境的根上下文 132
4.4 Spring Web MVC的启动 136
4.4.1 DispacherServlet概述 136
4.4.2 DispacherServlet的启动和初始化 137
4.5 Spring MVC的实现 141
4.5.1 DispatcherSevlet的MVC初始化 141
4.5.2 HandlerMapping的配置 143
4.5.3 使用HandlerMapping完成请求的映射处理 148
4.5.4 Spring MVC对HTTP请求的分发处理 150
4.6 Spring MVC视图的呈现 155
4.6.1 DispatcherServlet视图呈现概述 155
4.6.2 JSP视图的实现 157
4.6.3 ExcelView的实现 160
4.6.4 PDF视图的实现 163
4.7 小结 165
第5章 数据库操作组件的实现 167
5.1 Spring JDBC和Spring ORM概述 167
5.2 Spring JDBC模板类的实现 167
5.2.1 JdbcTeamplate的基本使用 167
5.2.2 JdbcTemplate的execute实现 168
5.2.3 JdbcTemplate的query实现 170
5.2.4 使用数据库Connection 171
5.3 Spring JDBC中RDBMS操作对象的实现 172
5.3.1 SqlQuery的实现 173
5.3.2 SqlUpdate的实现 177
5.3.3 SqlFunction 178
5.4 Spring驱动Hibernate的实现 179
5.4.1 配置Hibernate的SessionFactory 180
5.4.2 HibernateTemplate的实现 185
5.4.3 Session的管理 187
5.5 Spring驱动iBatis的实现 190
5.5.1 创建SqlMapClient 190
5.5.2 SqlMapClientTemplate的实现 192
5.6 小结 194
第6章 Spring事务处理的 实现 196
6.1 Spring与事务处理 196
6.2 声明式事务处理的基本过程 196
6.2.1 事务处理拦截器的配置 197
6.2.2 事务处理配置的读入 200
6.3 事务处理拦截器的实现 203
6.4 事务处理的实现 206
6.4.1 事务处理的编程式使用 206
6.4.2 事务的创建 207
6.4.3 事务的挂起 214
6.4.4 事务的提交 215
6.4.5 事务的回滚 218
6.5 具体事务处理器的实现 219
6.5.1 DataSourceTransactionManager的实现 219
6.5.2 HibernateTransactionManager的实现 222
6.6 小结 227
第7章 Spring远端调用的 实现 230
7.1 Spring远端调用概述 230
7.2 Spring HTTP 调用器的实现原理 232
7.2.1 配置HTTP调用器客户端 232
7.2.2 HTTP调用器客户端的实现 232
7.2.3 配置HTTP调用器远端服务器端 237
7.2.4 HTTP调用器服务器端的实现 237
7.3 Spring Hession/Burlap的实现 原理 241
7.3.1 Hessian/Burlap客户端的配置 241
7.3.2 Hessian客户端的实现 242
7.3.3 Burlap客户端的实现 244
7.3.4 Hessian/Burlap服务器端的配置 247
7.3.5 Hessian服务器端的实现 247
7.3.6 Burlap服务器端的实现 250
7.4 Spring RMI的实现 252
7.4.1 Spring RMI客户端的配置 252
7.4.2 Spring RMI客户端的实现 253
7.4.3 Spring RMI服务器端的配置 256
7.4.4 Spring RMI服务器端的实现 257
7.5 小结 259
第8章 安全框架ACEGI的 实现 260
8.1 Spring ACEGI安全框架概述 260
8.1.1 概述 260
8.1.2 使用Spring IDE 261
8.1.3 ACEGI的Bean配置 263
8.2 配置Spring ACEGI 264
8.3 ACEGI的Web过滤器实现 267
8.4 ACEGI验证器的实现 269
8.4.1 AuthenticationManager的authenticate 269
8.4.2 DaoAuthenticationProvider的实现 271
8.4.3 读取数据库用户信息 273
8.4.4 完成用户信息的对比验证 276
8.5 ACEGI授权器的实现 277
8.5.1 与Web环境的接口FilterSecurityInterceptor 277
8.5.2 授权器的实现 280
8.5.3 投票器的实现 282
8.6 小结 283
第三部分 Spring应用篇
第9章 Spring petclinic应用实例 287
9.1 petclinic概述 287
9.2 部署环境及数据库 289
9.3 petclinic的Bean配置 290
9.4 petclinic的Web页面实现 291
9.5 petclinic的领域对象实现 293
9.6 petclinic数据库操作的实现 294
9.6.1 使用JDBC的数据库操作 294
9.6.2 使用Hibernate的数据库操作 295
9.6.3 使用JPA的数据库操作 297
9.7 小结 298
作者:计文柯
ISBN:9787111288060
丛书名:揭秘系列丛书
出版社:机械工业出版社
出版日期:2010 年1月
开本:16
页码:300
版次:1-1
定价:55元
豆瓣网讨论地址:http://www.douban.com/subject/4199483/
China-pub预订地址:http://www.china-pub.com/196261
Spring技术内幕相关推荐
- 华章揭秘系列精品图书(《Android应用开发揭秘》、《GWT揭秘》、《Spring技术内幕》)...
Android应用开发揭秘(国内首本基于Andriod 2.0的经典著作,5大专业社区一致鼎力推荐!互动网畅销排行榜第1名) 作者:杨丰盛 出版社:机械工业出版社 标准书号:978-7-111-291 ...
- 《Spring技术内幕(第2版)》PDF 国内经典分析spring源代码
书名:Spring技术内幕(第2版) 作者: 计文柯 出版社: 机械工业出版社 副标题: 深入解析Spring架构与设计原理 出版年: 2012-2 页数: 399 定价: 69.00元 装帧: 平装 ...
- 资深架构师推荐Spring技术内幕:深入了解Spring的底层机制
程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深厚的技术基础,对应用的技术知其所以然,另一方面,在采坑的过程中不断 ...
- Spring技术内幕:设计理念和整体架构概述
为什么80%的码农都做不了架构师?>>> 程序员都很崇拜技术大神,很大一部分是因为他们发现和解决问题的能力,特别是线上出现紧急问题时,总是能够快速定位和解决. 一方面,他们有深 ...
- Spring技术内幕总结
最近一段时间看了一下书名叫<Spring技术内幕--深入解析Spring架构与设计原理>,这么熟将spring写的非常的经典,将spring所有的内幕技术解析的非常的详细,自己只是粗略的大 ...
- 《Spring技术内幕》——1.4节Spring的应用场景
1.4 Spring的应用场景 通过介绍Spring架构设计,我们了解到Spring是一个轻量级的框架.在Spring这个一站式的应用平台或框架中,其中的各个模块除了依赖IoC容器和AOP之外,相互之 ...
- 《Spring技术内幕》学习笔记19——Spring RMI实现远程调用
1.Spring除了使用基于HTTP协议的远程调用方案,还为开发者提供了基于RMI机制的远程调用方法,RMI远程调用网络通信实现是基于TCP/IP协议完成的,而不是通过HTTP协议. 在Spring ...
- Spring技术内幕(3)Spring AOP的实现
本章内容 Spring AOP概述.Spring AOP的设计与实现.建立AopProxy代理对象.Spring AOP拦截器调用的实现.Spring AOP的高级特性. 3.1 Spring AOP ...
- spring技术内幕——深入解析spring架构与设计原理
林纳斯·托瓦兹(Linus Torvalds)说:"我从心底认为,优秀的程序员与平庸的程序员之间的区别,是在于认为自己的代码重要还是数据结构更加重要.平庸的程序员眼里只有代码,优秀的程序员则 ...
最新文章
- AI 芯片的分类及技术
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- Java 设计模式之命令模式
- 大数据WEB阶段(二十)更新丢失
- 计算机三级数据库er图试题里,2019年3月计算机三级数据库考试基础试题及答案006...
- linux jdk1.7 tomcat
- 软件测试行业基本介绍
- STM32开发环境搭建
- 高中数学基础-1.2.2函数的表示法(上):解析法、列表法、图形法
- python 特征选择方法_机器学习小窍门:Python 帮你进行特征选择
- php 连接局域网打印机,如何添加局域网打印机?局域网打印机添加方法介绍
- 如何使用PS改变只有一种颜色图片的颜色
- 线性规划-pulp-复杂矩阵
- 虚幻属性系统(反射)
- 微服务架构通讯模式架构分析
- golang中结构体转成xml格式
- win10此计算机未连接到网络,win10提示无法连接到此网络是怎么回事 怎么办
- Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached
- 2022年搭载国产芯片的手机推荐 这3款性能就不错
- 数字化转型,要把功夫炼到任督二脉