自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 Spring实现原理分析(二十五).Spring Boot如何把application.*中的配置数据转换成对象...

大家好!用过spring boot的人应该都知道“application.properties”和“application.yml”这两个配置文件吧,最常见的就是在这两个文件里面配置数据库连接信息。那么,今天我要向大家揭秘,spring boot是何时加载它们,以及如何应用配置文...

2017-12-02 14:49:00 216

转载 Spring3.1.0实现原理分析(二十四).Spring Boot实现原理分析

前阵子在分析sprng boot的源代码,有了些感悟和心得,今天写篇博客和大家分享下。先来段题外话,在人体的血液中含有血细胞,而血细胞又大致可以分为红细胞、白细胞、血小板。它们各自有各自的用处和特点,互相协作保障人体的建康。 一. 各种Bean 如果我们...

2017-11-10 17:30:00 2008

转载 Spring3.1.0实现原理分析(二十二).Dao事务分析之事务管理器DataSourceTransactionManager...

大家好,开篇先来谈谈spring事务的优点吧,即spring事务的存在价值。首先它提供了非侵入式编码的事务实现,这个是通过aop实现的,具体的实现过程之前也写博客分析了。 另外,spring还提供了一套标准的事务管理工作流程。简单的说,事务管理一共可分为三个步骤,...

2017-08-25 22:22:00 542

转载 Spring3.1.0实现原理分析(二十一).Dao事务分析之集成MyBatis

大家好,这篇博客我想分析下Spring是如何集成myBatis的,下篇博客分析集成后DataSourceTransactionManager事务管理的完整流程。spring集成mybatis,spring主要扮演了两个角色,原料供应商和事务管理者,第一个角色是必须扮演的,第二个角...

2017-08-19 14:09:00 152

转载 Spring3.1.0实现原理分析(二十).Dao事务分析之非入侵式编码

大家好,从这篇博客开始我们分析下Spring的事务模块。Spring事务的其中一个优点是非入侵式的编码,那么非入侵是怎么实现的呢?其实就是通过Spring Aop实现的。关于AOP我之前写过两篇博客,大家最好先看下,对于理解本文有帮助。 下面是一个Spring事务的...

2017-08-19 14:07:00 106

转载 Spring3.1.0实现原理分析(十九).MVC异常处理

大家好,今天谈谈spring mvc的异常处理架构,应该说异常处理也是mvc框架的一个不可或缺的基本功能。那么在什么情况下会调用异常处理器呢,z在处理器处理请求出现异常的情况下会调用异常处理器执行善后事宜。用伪代码来表述下,基本上是这样的模型。try{处理请求} catch{ 调...

2017-07-31 16:49:00 67

转载 Spring3.1.0实现原理分析(十八).MVC处理器和处理器适配器

大家好,我们之前介绍过处理器映射,一个request请求对象经过处理器映射解析后可以获得执行链对象(若干个拦截器加一个处理器),处理器是用来返回应答数据的,而处理器适配器的作用是调用处理器。在spring mvc中默认的处理器映射是“RequestMappingHandlerM...

2017-07-31 16:48:00 127

转载 Spring3.1.0实现原理分析(十七).MVC请求处理方法参数解析器和返回值解析器

大家好,通过我之前的分析可以知道一个request请求经过处理器映射对象(RequestMappingHandlerMapping)处理后,可以获得执行链对象,所谓执行链就是一堆拦截器加一个HandlerMethod对象。那么HandlerMethod是什么呢?它主要是对请求处理方...

2017-07-11 17:54:00 132

转载 Spring3.1.0实现原理分析(十六).MVC数据绑定器

大家好,今天我们分析下数据绑定器(DataBinder),DataBinder是用来干嘛的呢?是用来给bean属性赋值的,并且还提供了校验bean属性值的功能。分析它的实现原理会涉及到多个spring模块的功能,具体有“属性访问器”、“验证器”、“类型转换”、“国际化”。 这些模...

2017-07-03 21:49:00 109

转载 Spring3.1.0实现原理分析(十五).MVC验证器模块

大家好,今天我们分析下Spring的验证器模块(Validator),照理说验证器模块并非专用于web应用,但是通常还是在web应用中使用,所以我们还是在MVC这个大主题中讨论验证器模块吧。spring验证器验证什么东西呢?用于验证对象的各属性值是否符合要求,如取值范围要求、格式...

2017-06-27 17:34:00 82

转载 Spring3.1.0实现原理分析(十四).MVC之处理器映射

大家好,今天我们分析下处理器映射,这个功能是MVC框架所应具备的基本功能。那么,什么是处理器映射呢,是指根据一套规则获取处理本次request请求的执行链对象,它是连接url请求和执行链对象的桥梁。执行链又是什么东东呢?无论是spring mvc还是struts2,执行链往往就是...

2017-06-20 17:22:00 85

转载 Spring3.1.0实现原理分析(十三).MVC请求映射信息RequestMappingInfo详解

大家好,原本是打算先分析spring mvc的处理器映射接口的(HandlerMapping),但是发现其中的请求映射信息对象(RequestMappingInfo)特别重要,所以就决定专门写篇博客介绍请求映射信息对象,对于RequestMappingInfo有概念的读者可以先看...

2017-06-16 23:03:00 91

转载 Spring3.1.0实现原理分析(十二).MVC核心类DispatcherServlet初始化过程

大家好,今天我们分析下DispatcherServlet的初始化过程,下面的配置大家一定不陌生吧,只要使用spring mvc框架大多会在web.xml文件中加入这么一段配置,可见这个类是spring mvc的核心类,就是由它负责处理request请求的,在DispatcherServ...

2017-06-07 17:04:00 75

转载 Spring3.1.0实现原理分析(十一).MVC-从桌面到web应用

大家好,从这篇博客开始我们开始探讨Spring's MVC模块,分析它的功能,解密它的实现原理。分析MVC模块,首先是要讲明白spring在web应用中是如何被加载的,当一个 web应用启动和卸载时,spring都会执行哪些操作呢? spring通往web应用的走...

2017-06-01 22:39:00 103

转载 Spring3.1.0实现原理分析(十).AOP之代理对象执行拦截过程

大家好,上篇博客讲解了代理对象的创建过程《AOP之创建代理对象的过程》,今天主要分析下代理对象执行拦截的过程。 无论是jdk代理对象还是cglib代理对象,它们都持有通知列表对象,而通知对象呢其实就是AOP大联盟的方法拦截器对象(MethodInterceptor)。之所以这...

2017-05-28 22:11:00 135

转载 Spring3.1.0实现原理分析(九).AOP之创建代理对象的过程

大家好,今天我会用一个例子来讲解Spring创建bean代理对象的过程,为大家揭开Spring AOP的神秘面纱。在看这篇博客前我强烈建议读者先看下这两篇博客《Spring3.1.0实现原理分析(六).实例化》,《Spring3.1.0实现原理分析(七).填充Bean属性,初始...

2017-05-19 16:53:00 146

转载 Spring3.1.0实现原理分析(八).获取bean对象

Spring获取bean对象的逻辑相对简单,原本不打算专门写篇博客来介绍了。不过想了想,既然上两篇博客分析了Spring创建对象的过程,有创建便有获取,所以还是分析下获取bean对象的过程吧。 一. 获取单例bean 1). 进入DefaultSingletonBeanRegis...

2017-05-11 11:48:00 157

转载 Spring3.1.0实现原理分析(七).填充Bean属性,初始化Bean,登记善后处理,注册单例Bean...

大家好,上篇博客我较详细分析了实例化过程,今天继续探讨实例化之后的其它步骤,分别是“填充Bean属性”,“初始化Bean”,“登记善后处理”,“注册单例Bean”,加之实例化,这五个步骤是Spring创建对象的一个完整过程。 一. 填充Bean属性 <bean id="zoo...

2017-05-08 11:08:00 407

转载 Spring3.1.0实现原理分析(六).实例化

大家好,我在上篇博客中《关于循环引用的探讨》中,有提及Spring创建一个对象大致可以分为五个步骤,分别是“实例化”,“填充属性值”,“初始化”,“登记善后处理”,“注册单例Bean”(上述步骤暂时不考虑AOP)。PS:在Spring中创建对象和实例化对象是两个概念,实例化仅仅是创建...

2017-05-04 22:43:00 125

转载 Spring3.1.0实现原理分析(五).关于循环引用的探讨

所谓循环引用是指对象之间的互相依赖形成了一个闭环,比如A依赖B,B依赖C,而C又反过来依赖A,这个是关于循环引用的基本认知。然后在Spring中循环引用又可细分成三种场景,我们逐一来分析下。 一.单例bean基于构造函数的循环引用 1). bean定义 ...

2017-04-28 13:21:00 82

转载 Spring3.1.0实现原理分析(四).属性访问器(PropertyAccessor)

属性访问器(PropertyAccessor)和我上一篇博客《Spring3.1.0实现原理分析(三).配置数据》中提到的属性解析器(PropertyResolver)从字面上看很相像,但是两个接口的作用是截然不同的。属性解析器接口是用来获取配置数据的,具体可以看上篇博客,而属性访问...

2017-04-24 16:31:00 387

转载 Spring3.1.0实现原理分析(三).配置数据

今天我想谈一下,Spring从哪里获取配置数据? 配置数据做什么用处? 如何存储和访问配置数据?就像一辆汽车,开之前总得先加油吧,不然何如工作呢。 1. 配置数据有哪些,何时加载,其作用是什么。 我觉得Spring的数据源至少可分为两类,JDK系统数据和用户配置...

2017-04-08 11:16:00 74

转载 Spring3.1.0实现原理分析(二).国际化(i18n)

今天和大家一起分析下Spring国际化模块的结构。什么是国际化呢? 我想引用李刚老师曾说过的一句话:“所谓国际化其实就是字符串的查找和替换过程”。查找就是根据code去资源文件中获取value,替换就是把value中可能包含的占位符替换成实际值,所以国际化的关键在于资源文件的加...

2017-04-01 09:46:00 265

转载 Spring3.1.0实现原理分析(一).类型转换

类型转换可以说是一个框架的基础性功能,struts2,mybatis等开源软件都有自己的类型转换模块,之所以将类型转换作为Spring源码架构分析系列博客的第一篇,是因为我觉得这个模块在Spring众多模块中是处于最底层的,它只被其它模块引用,而不存在对其它模块的依赖,柿子找软的捏,...

2017-03-26 17:15:00 178

转载 简析struts2漏洞CVE-2017-5638,S02-45 (形成原理,解决方法)

简单说一下Struts2基于“commons-fileupload”组件实现文件上传的漏洞,漏洞编号CVE-2017-5638,S02-45. 1. 漏洞重现: 通过发包模拟器或其它你能修改请求头Content-Type字段的客户端,可以把Content-Type 修改成诸如h...

2017-03-08 16:52:00 551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除