《spring源码深度解析第二版高清完整版》电子书

互联网|IT adminlele 4年前 (2022-05-09) 465次浏览 已收录 0个评论

本站主要采用城通网盘链接分享,因为其他网盘会和谐链接!非VIP会员的朋友请点击普通下载,弹窗关闭即可。速度可能比较慢,请耐心等待,提高下载速度,送您10元消费红包

《spring源码深度解析第二版高清完整版》电子书

《spring源码深度解析第二版高清完整版》电子书内容简介 

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、

自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。

《Spring源码深度解析》不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者如何使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、

如何使得代码高效给出切实可行的建议,从而帮助读者全面提升实战能力。

《Spring源码深度解析》语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。《Spring源码深度解析》适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员等。

相关内容预览

作者简介 

郝佳,计算机专业硕士学位,曾发表过多篇论文先后被EI、SCI收录,2008年辽宁省教育厅科技计划项目研究人之一;长期奋斗于J2EE领域,曾任职于某互联网公司软件架构师,

擅长系统的性能优化,目前正投身于开发一款基于Java并发多线程管理的开源框架;热衷于研究各种优秀的开源代码并从中进行总结,从而实现个人技能的提高,尤其对Spring、Hibernate、MyBatis、JMS、Tomcat等源码有着深刻的理解和认识。

目录

第一部分 核心实现

第1章 Spring整体架构和环境搭建 2
1.1 Spring的整体架构 2
1.2 环境搭建 4
1.2.1 安装GitHub 4
1.2.2 安装Gradle 5
1.2.3 下载Spring 6
第2章 容器的基本实现 10
2.1 容器基本用法 10
2.2 功能分析 11
2.3 工程搭建 12
2.4 Spring的结构组成 13
2.4.1 beans包的层级结构 13
2.4.2 核心类介绍 13
2.5 容器的基础XmlBeanFactory 17
2.5.1 配置文件封装 18
2.5.2 加载Bean 21
2.6 获取XML的验证模式 24
2.6.1 DTD与XSD区别 24
2.6.2 验证模式的读取 26
2.7 获取Document 28
2.7.1 EntityResolver用法 29
2.8 解析及注册BeanDefinitions 31
2.8.1 profile属性的使用 32
2.8.2 解析并注册BeanDefinition 33
第3章 默认标签的解析 35
3.1 bean标签的解析及注册 35
3.1.1 解析BeanDefinition 37
3.1.2 AbstractBeanDefinition属性 55
3.1.3 解析默认标签中的自定义标签元素 58
3.1.4 注册解析的BeanDefinition 60
3.1.5 通知监听器解析及注册完成 63
3.2 alias标签的解析 63
3.3 import标签的解析 65
3.4 嵌入式beans标签的解析 67
第4章 自定义标签的解析 68
4.1 自定义标签使用 69
4.2 自定义标签解析 71
4.2.1 获取标签的命名空间 72
4.2.2 提取自定义标签处理器 72
4.2.3 标签解析 74
第5章 bean的加载 78
5.1 FactoryBean的使用 83
5.2 缓存中获取单例bean 85
5.3 从bean的实例中获取对象 86
5.4 获取单例 90
5.5 准备创建bean 92
5.5.1 处理ovverride属性 93
5.5.2 实例化的前置处理 94
5.6 循环依赖 96
5.6.1 什么是循环依赖 96
5.6.2 Spring如何解决循环依赖 96
5.7 创建bean 100
5.7.1 创建bean的实例 103
5.7.2 记录创建bean的ObjectFactory 112
5.7.3 属性注入 115
5.7.4 初始化bean 124
5.7.5 注册DisposableBean 128
第6章 容器的功能扩展 129
6.1 设置配置路径 130
6.2 扩展功能 130
6.3 环境准备 132
6.4 加载BeanFactory 133
6.4.1 定制BeanFactory 135
6.4.2 加载BeanDefinition 136
6.5 功能扩展 137
6.5.1 增加SPEL语言的支持 138
6.5.2 增加属性注册编辑器 139
6.5.3 添加ApplicationContext AwareProcessor处理器 144
6.5.4 设置忽略依赖 146
6.5.5 注册依赖 146
6.6 BeanFactory的后处理 146
6.6.1 激活注册的BeanFactory PostProcessor 147
6.6.2 注册BeanPostProcessor 153
6.6.3 初始化消息资源 156
6.6.4 初始化ApplicationEvent Multicaster 159
6.6.5 注册监听器 161
6.7 初始化非延迟加载单例 162
6.8 finishRefresh 165
第7章 AOP 167
7.1 动态AOP使用示例 167
7.2 动态AOP自定义标签 169
7.2.1 注册AnnotationAwareAspectJ AutoProxyCreator 170
7.3 创建AOP代理 173
7.3.1 获取增强器 176
7.3.2 寻找匹配的增强器 186
7.3.3 创建代理 187
7.4 静态AOP使用示例 201
7.5 创建AOP静态代理 203
7.5.1 Instrumentation使用 203
7.5.2 自定义标签 207
7.5.3 织入 209
第二部分 企业应用
第8章 数据库连接JDBC 214
8.1 Spring连接数据库程序实现(JDBC) 215
8.2 save/update功能的实现 217
8.2.1 基础方法execute 219
8.2.2 Update中的回调函数 223
8.3 query功能的实现 225
8.4 queryForObject 229
第9章 整合MyBatis 231
9.1 MyBatis独立使用 231
9.2 Spring整合MyBatis 235
9.3 源码分析 237
9.3.1 sqlSessionFactory创建 237
9.3.2 MapperFactoryBean的创建 241
9.3.3 MapperScannerConfigurer 244
第10章 事务 254
10.1 JDBC方式下的事务使用 示例 254
10.2 事务自定义标签 257
10.2.1 注册InfrastructureAdvisor AutoProxyCreator 257
10.2.2 获取对应class/method的增强器 261
10.3 事务增强器 269
10.3.1 创建事务 271
10.3.2 回滚处理 281
10.3.3 事务提交 287
第11章 SpringMVC 291
11.1 SpringMVC快速体验 291
11.2 ContextLoaderListener 295
11.2.1 ServletContextListener的使用 295
11.2.2 Spring中的ContextLoader Listener 296
11.3 DispatcherServlet 300
11.3.1 servlet的使用 301
11.3.2 DispatcherServlet的初始化 302
11.3.3 WebApplicationContext的初始化 304
11.4 DispatcherServlet的逻辑处理 320
11.4.1 MultipartContent类型的request处理 326
11.4.2 根据request信息寻找对应的Handler 327
11.4.3 没找到对应的Handler的错误处理 331
11.4.4 根据当前Handler寻找对应的HandlerAdapter 331
11.4.5 缓存处理 332
11.4.6 HandlerInterceptor的处理 333
11.4.7 逻辑处理 334
11.4.8 异常视图的处理 334
11.4.9 根据视图跳转页面 335
第12章 远程服务 340
12.1 RMI 340
12.1.1 使用示例 340
12.1.2 服务端实现 342
12.1.3 客户端实现 350
12.2 HttpInvoker 355
12.2.1 使用示例 356
12.2.2 服务端实现 357
12.2.3 客户端实现 361
第13章 Spring消息 367
13.1 JMS的独立使用 367
13.2 Spring整合ActiveMQ 369
13.3 源码分析 371
13.3.1 JmsTemplate 372
13.3.2 监听器容器 376

Spring源码深度解析:快速体验SpringMVC

SpringMVC

Spring框架提供了构建Web应用程序的全功能MVC模块。通过策略接口,Spring框架是高度可配置的,而且支持多种视图技术,例如JavaServer Pages(JSP)、

Velocity、Tiles、iText和POI。SpringMVC框架并不知道使用的视图,所以不会强迫您只使用JSP技术。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Spring的MVC是基于Servlet功能实现的,通过实现Servlet接口的DispatcherServlet来封装其核心功能实现,通过将请求分派给处理程序,同时带有可配置的处理程序映射、

视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的Controller接口,只有一个方法ModelAndView handleRequest(request, response)。Spring提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承AbstractFormController。如果需要把多页输入处理到一个表单,那么可以继承AbstractWizardFormController。

对SpringMVC或者其他比较成熟的MVC框架而言,解决的问题无外乎以下几点。

将Web页面的请求传给服务器。

根据不同的请求处理不同的逻辑单元。

返回处理结果数据并跳转至响应的页面。

我们首先通过一个简单示例来快速回顾SpringMVC的使用。

11.1 SpringMVC快速体验

1.配置web.xml

一个Web中可以没有web.xml文件,也就是说,web.xml文件并不是Web工程必需的。web.xml文件用来初始化配置信息,比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。但是,SpringMVC的实现原理是通过servlet拦截所有URL来达到控制的目的,所以web.xml的配置是必需的。

Springmvc

contextConfigLocation

classpath:applicationContext.xml

Springmvc

org.Springframework.web.servlet.DispatcherServlet

1

Springmvc

*.htm

org.Springframework.web.context.ContextLoaderListener

Spring的MVC之所以必须要配置web.xml,其实最关键的是要配置两个地方。

contextConfigLocation:Spring的核心就是配置文件,可以说配置文件是Spring中必不可少的东西,而这个参数就是使Web与Spring的配置文件相结合的一个关键配置。

DispatcherServlet:包含了SpringMVC的请求逻辑,Spring使用此类拦截Web请求并进行相应的逻辑处理。

2.创建Spring配置文件applicationContext.xml

<beansxmlns="http://www.Springframework.org/schema/beans"xmlns:tx="http://www.Springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemalocation="http://www.Springframework.org/schema/beans

http://www.Springframework.org/schema/beans/Spring-beans-2.5.xsd

http://www.Springframework.org/schema/tx

http://www.Springframework.org/schema/tx/Spring-tx-2.5.xsd">

<beanclass="org.Springframework.web.servlet.view. Internal Resource

ViewResolver"id="viewResolver">

</bean>

</beans>

InternalResourceViewResolver是一个辅助bean,会在ModelAndView返回的视图名前加上prefix指定的前缀,再在最后加上suffix指定的后缀,例如:由于XXController返回的ModelAndView中的视图名是testview,故该视图解析器将在/WEB-INF/jsp/testview.jsp处查找视图。

3.创建model

模型对于SpringMVC来说并不是必不可少,如果处理程序非常简单,完全可以忽略。模型创建主要的目的就是承载数据,使数据传输更加方便。

publicclassUser{

privateString username;

privateInteger age;

publicString getUsername(){

return username;

publicvoid setUsername(String username){

this.username = username;

publicInteger getAge(){

return age;

publicvoid setAge(Integer age){

this.age = age;

4.创建controller

控制器用于处理Web请求,每个控制器都对应着一个逻辑处理。

publicclassUserControllerextendsAbstractController{

@Override

protectedModelAndView handleRequestInternal(HttpServletRequest arg0,HttpServletResponse arg1)throwsException{

List<user> userList =newArrayList<user>();

User userA =newUser();

User userB =newUser();

userA.setUsername("张三");

userA.setAge(27);

userB.setUsername("李四");

userB.setAge(37);

userList.add(userA);

userList.add(userB);

returnnewModelAndView("userlist","users", userList);

在请求的最后返回了ModelAndView类型的实例。ModelAndView类在SpringMVC中占有很重要的地位,控制器执行方法都必须返回一个ModelAndView,ModelAndView对象保存了视图以及视图显示的模型数据,例如其中的参数如下。

第1个参数userlist:视图组件的逻辑名称。这里视图的逻辑名称就是userlist,视图解析器会使用该名称查找实际的View对象。

第2个参数users:传递给视图的模型对象的名称。

第3个参数userList:传递给视图的模型对象的值。

5.创建视图文件userlist.jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt;

<h2>This is SpringMVC demo page</h2>

<c:foreachitems="${users}"var="user">

<br/>

<br/>

</c:foreach>

视图文件用于展现请求处理结果,通过对JSTL的支持,可以很方便地展现在控制器中放入ModelAndView中的处理结果数据。

6.创建Servlet配置文件Spring-servlet.xml

<beansxmlns="http://www.Springframework.org/schema/beans"xmlns:tx="http://www. Spring

framework. org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemalocation="http://www.Springframework.org/schema/beans

http://www.Springframework.org/schema/beans/Spring-beans-2.5.xsd

http://www.Springframework.org/schema/tx

http://www.Springframework.org/schema/tx/Spring-tx-2.5.xsd">

<beanclass="org.Springframework.web.servlet.handler.SimpleUrlHandlerMapping"id="simpleUrlMapping">

<propertyname="mappings">

<props>

<propkey="/userlist.htm">userController</prop>

</props>

</property>

</bean>

</beans>

因为SpringMVC是基于Servlet的实现,所以在Web启动的时候,服务器会首先尝试加载对应于Servlet的配置文件,而为了让项目更加模块化,通常我们将Web部分的配置都存放于此配置文件中。

至此,已经完成了SpringMVC的搭建,启动服务器,输入网址http://localhost:8080/ Springmvc/userlist.htm。

看到了服务器返回界面,如图11-1所示。

图11-1 SpringMVC快速体验

本文摘自:《Spring源码深度解析》(第2版)

《Spring源码深度解析》(第2版)

《Spring源码深度解析 第2版》(郝佳)【摘要 书评 试读】- 京东图书item.jd.com

全面剖析Spring源码,方便读者根据业务需求进行更改或扩展

所有知识点秉承由浅入深、由易到难的讲解架构

采用抽丝剥茧的方式来阐述复杂的逻辑,降低理解难度

《Spring源码深度解析(第2版)》从核心实现、企业应用和Spring Boot这3个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring 整体架构和环境搭建、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息、Spring Boot体系原理等内容。

《Spring源码深度解析(第2版)》不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出了切实可行的建议,从而帮助读者全面提升实战能力。

《Spring源码深度解析(第2版)》语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。本书适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员等。

spring源码深度解析第二版高清 pdf

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现等内容都有介绍,小编也 给大家准备了spring源码深度解析第二版高清pdf,欢迎下载哦

spring.zip: https://t00y.com/f/560517-578299445-903bfb?p=311929 (访问密码:311929)


中信图书出版社全部书籍617本 百度网盘福利
西部数码域名服务器优惠券 老薛主机优惠券
请通过以下商城购买正版书籍
图书库 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:《spring源码深度解析第二版高清完整版》电子书本站电子书版权归原作者及开发商所有,仅限个人测试交流学习之用,请在下载后24小时内删除。若有违反您个人权益,请留言反馈删除相关信息。

喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址