![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
一点一滴g
这个作者很懒,什么都没留下…
展开
-
SpringMVC源码分析5---消息转换器HttpMessageConverter与@ResponseBody注解
源码分析本文使用的spring版本是4.0.2。在讲解< mvc:annotation-driven/>这个配置之前,我们先了解下Spring的消息转换机制。@ResponseBody这个注解就是使用消息转换机制,最终通过json的转换器转换成json数据的。HttpMessageConverter接口就是Spring提供的http消息转换接口。下面开始分析< mvc:...转载 2019-05-27 23:20:07 · 226 阅读 · 0 评论 -
SpringMVC源码分析1---MVC概述
Web MVC简介1.1、Web开发中的请求-响应模型:在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完成后,返回内容给web客户端(一般就是我们的浏览器),客户端对接收的内容...转载 2019-05-23 13:00:28 · 133 阅读 · 0 评论 -
SpringMVC源码分析4---DispatcherServlet如何找到正确的Controller
源码分析在分析源码之前,我们先了解一下几个东西。1.这个过程中重要的接口和类。HandlerMethod类:Spring3.1版本之后引入的。 是一个封装了方法参数、方法注解,方法返回值等众多元素的类。 它的子类InvocableHandlerMethod有两个重要的属性WebDataBinderFactory和HandlerMethodArgumentResolverComposi...转载 2019-05-27 16:17:37 · 741 阅读 · 0 评论 -
SpringMVC源码分析3---DispatcherServlet的初始化与请求转发
转自:https://my.oschina.net/lichhao/blog/102315一:初始化流程详解在我们第一次学Servlet编程,学java web的时候,还没有那么多框架。我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转到我们定义好的jsp页面。Servlet类编写完之后在web.xml里注册这个Ser...转载 2019-05-26 22:56:58 · 158 阅读 · 0 评论 -
Spring源码分析12---Spring事务概述
Spring提供的事务管理Spring框架最核心功能之一就是事务管理,而且提供一致的事务管理抽象,这能帮助我们:提供一致的编程式事务管理API,不管使用Spring JDBC框架还是集成第三方框架使用该API进行事务编程;无侵入式的声明式事务支持。Spring支持声明式事务和编程式事务事务类型。spring事务特性spring所有的事务管理策略类都继承自org.springfram...转载 2019-05-22 18:20:45 · 84 阅读 · 0 评论 -
Spring源码分析11---AOP实现原理详解
参考 http://www.linkedkeeper.com/detail/blog.action?bid=1048为了探究AOP实现原理,首先定义几个类,一个Dao接口:public interface Dao { public void select(); public void insert();}Dao接口的实现类DaoImpl:public class D...转载 2019-05-22 13:13:36 · 203 阅读 · 0 评论 -
Spring源码分析3---IOC 之 加载 Bean
原文出自:http://cmsblogs.com 先看一段熟悉的代码:ClassPathResource resource = new ClassPathResource("bean.xml");DefaultListableBeanFactory factory = new DefaultListableBeanFactory();XmlBeanDefinitionReader rea...转载 2019-05-16 23:03:07 · 104 阅读 · 0 评论 -
Spring源码分析2---IOC 之 Spring 统一资源加载策略
原文出自:http://cmsblogs.com该资源加载策略需要满足如下要求:职能划分清楚。资源的定义和资源的加载应该要有一个清晰的界限;统一的抽象。统一的资源定义和资源加载策略。资源加载后要返回统一的抽象给客户端,客户端要对资源进行怎样的处理,应该由抽象资源接口来界定。统一资源:Resourceorg.springframework.core.io.Resource 为 Sp...转载 2019-05-16 22:08:18 · 95 阅读 · 0 评论 -
Spring源码分析10---Spring AOP概述
原文出处: 五月的仓颉原始代码的写法既然要通过代码来演示,那必须要有例子,这里我的例子为:有一个接口Dao有insert、delete、update三个方法,在insert与update被调用的前后,打印调用前的毫秒数与调用后的毫秒数首先定义一个Dao接口:public interface Dao { public void insert(); ...转载 2019-05-21 23:18:06 · 82 阅读 · 0 评论 -
Spring源码分析9---JDK和cglib动态代理原理详解
转自 https://www.jianshu.com/u/668d0795a95bJava中代理的实现一般分为三种:JDK静态代理、JDK动态代理以及CGLIB动态代理。在Spring的AOP实现中,主要应用了JDK动态代理以及CGLIB动态代理。但是本文着重介绍JDK动态代理机制,CGLIB动态代理后面会接着探究。代理一般实现的模式为JDK静态代理:创建一个接口,然后创建被代理的类实现该...转载 2019-05-21 13:11:46 · 466 阅读 · 1 评论 -
Spring源码分析1---Spring IOC核心流程
IOC理论Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 如何理解“控制反转”好呢?理解好它的关键在于我们需要回答如下四个问题: 1. 谁控制谁 2. 控制什么 3. 为何是反转 4. 哪些方面反转了 在回答这四个问题之前,我们先看 IOC 的定义:所谓 IOC ,就是由 Spring IOC ...原创 2019-05-15 23:50:02 · 229 阅读 · 0 评论 -
Spring简介
Spring是什么Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不...原创 2019-05-15 17:28:38 · 118 阅读 · 0 评论 -
Spring源码分析8---IOC 之 bean 的初始化
原文出自:http://cmsblogs.com一个 bean 经历了 createBeanInstance() 被创建出来,然后又经过一番属性注入,依赖处理,历经千辛万苦,千锤百炼,终于有点儿 bean 实例的样子,能堪大任了,只需要经历最后一步就破茧成蝶了。这最后一步就是初始化,也就是 initializeBean(),所以这篇文章我们分析 doCreateBean() 中最后一步:初始...转载 2019-05-20 20:06:59 · 75 阅读 · 0 评论 -
Spring源码分析7---IOC 之parentBeanFactory 与依赖处理
原文出自:http://cmsblogs.com如果从单例缓存中没有获取到单例 bean,则说明两种情况:该 bean 的 scope 不是 singleton该 bean 的 scope 是 singleton ,但是没有初始化完成针对这两种情况 Spring 是如何处理的呢?统一加载并完成初始化!这部分内容的篇幅较长,拆分为两部分,第一部分主要是一些检测、parentBean...转载 2019-05-20 20:00:10 · 584 阅读 · 0 评论 -
Spring源码分析6---IOC 之从单例缓存中获取单例 bean
原文出自:http://cmsblogs.com从这篇博客开始我们开始加载 bean 的第一个步骤,从缓存中获取 bean,代码片段如下: Object sharedInstance = getSingleton(beanName); if (sharedInstance != null && args == null) { if...转载 2019-05-19 20:44:10 · 98 阅读 · 0 评论 -
Spring源码分析5---IOC 之开启 bean 的加载
原文出自:http://cmsblogs.comSpring IOC 容器所起的作用如上图所示,它会以某种方式加载 Configuration Metadata,将其解析注册到容器内部,然后回根据这些信息绑定整个系统的对象,最终组装成一个可用的基于轻量级容器的应用系统。Spring 在实现上述功能中,将整个流程分为两个阶段:容器初始化阶段和加载bean 阶段。容器初始化阶段:首先通过某...转载 2019-05-19 20:36:51 · 122 阅读 · 0 评论 -
Spring源码分析4---IOC加载过程补充总结
原文出自:http://cmsblogs.comIOC 之 获取验证模型DTD 与 XSD 的区别DTD(Document Type Definition),即文档类型定义,为 XML 文件的验证机制,属于 XML 文件中组成的一部分。DTD 是一种保证 XML 文档格式正确的有效验证方式,它定义了相关 XML 文档的元素、属性、排列方式、元素的内容类型以及元素的层次结构。其实 DTD ...转载 2019-05-19 19:38:25 · 145 阅读 · 0 评论 -
SpringMVC源码分析2---SpringMVC设计理念与DispatcherServlet
转自:https://my.oschina.net/lichhao/blogSpringMVC作为Struts2之后异军突起的一个表现层框架,正越来越流行,相信javaee的开发者们就算没使用过SpringMVC,也应该对其略有耳闻。我试图通过对SpringMVC的设计思想和源码实现的剖析,从抽象意义上的设计层面和实现意义上的代码层面两个方面,逐一揭开SpringMVC神秘的面纱,本文的代码...转载 2019-05-23 20:40:39 · 125 阅读 · 0 评论