Spring
文章平均质量分 88
0xZzzz
目前就职于阿里,从事阿里新零售业务的相关开发工作,开源爱好者,喜欢阅读优秀开源框架的源码,热衷于研究各种技术,致力于成为一名有腔调的工程师
展开
-
Spring源码解析之bean的创建
阅读须知研究了半天markdown也没发现怎么为代码块中的重点代码做特殊标记,所以这里使用//单行注释做代码的简单注释,而/**/多行注释的代码注释的同时会做深入分析,同时为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。正文之前我们都是在围绕ApplicationContext applic原创 2019-01-27 14:06:08 · 9036 阅读 · 2 评论 -
SpringMVC源码解析之执行过程篇
阅读须知Spring源码版本:4.3.8文章中使用/**/注释的方法会做深入分析正文承接上文,我们知道HttpServlet提供一些处理请求的方法,如doGet、doPost、service等,在DispatcherServlet中的实现都调用了processRequest方法,我们来分析这个方法: FrameworkServlet:protected final vo...原创 2017-12-21 10:25:43 · 1604 阅读 · 2 评论 -
SpringMVC源码解析之配置解析篇
阅读须知文章中使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。本文的主要内容是分析Spring MVC配置解析和执行前的准备工作源码。正文我们在使用SpringMVC时首先要配置web.xml:<?xml version="1.0" enco原创 2018-01-11 18:51:24 · 4367 阅读 · 1 评论 -
Spring源码解析之自定义标签的解析
阅读须知文章中使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。本文的主要内容是分析Spring自定义标签解析的源码。正文上篇文章我们介绍了Spring默认标签的解析,本文我们来分析一下Spring自定义标签的解析。上篇文章我们了解到Sprin原创 2017-11-26 21:44:25 · 2770 阅读 · 0 评论 -
SpringAOP源码解析之aop:aspectj-autoproxy标签解析
阅读须知文章中使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。本文的主要内容是分析Spring AOP配置解析的源码。正文Spring AOP是我们日常开发中经常使用的工具,常被用来做统一的日志、异常处理、监控等功能,使用方法在此不多赘述,有原创 2018-01-11 19:33:04 · 9756 阅读 · 0 评论 -
SpringMVC源码解析之HandlerMapping
阅读须知Spring源码版本:4.3.8文章中使用/* */注释的方法会做深入分析正文HandlerMapping是Spring MVC中一个很重要的角色,用于注册和获取handler,在初始化阶段如果用户没有指定HandlerMapping,会默认添加两个默认的策略BeanNameUrlHandlerMapping和DefaultAnnotationHandlerMapping...原创 2018-08-09 17:06:36 · 1776 阅读 · 2 评论 -
Spring源码解析之bean的销毁
阅读须知Spring源码版本:4.3.8文章中使用/* */注释的方法会做深入分析正文我们来看几个销毁bean的场景,在一些异常情况,例如Spring上下文初始化失败时,会销毁已经创建的单例bean,这时会调用相关销毁方法,在Spring容器关闭时,同样会调用disposableBeans的销毁方法: AbstractApplicationContext:public vo...原创 2018-08-09 17:40:41 · 2271 阅读 · 0 评论 -
Spring boot启动流程源码解析
阅读须知版本:2.0.4文章中使用/* */注释的方法会做深入分析正文@SpringBootApplicationpublic class BootApplication { public static void main(String[] args) { SpringApplication.run(BootApplication.class, args);...原创 2018-11-06 17:40:34 · 1659 阅读 · 1 评论 -
Spring boot自动配置源码解析
阅读须知版本:2.0.4文章中使用/* */注释的方法会做深入分析正文自动配置是Spring boot的一大亮点,让我们从Spring繁杂的配置中脱身而出,本篇文章我们就来分析一下Spring boot自动配置的源码。不知道读者是否有注意到,在分析Spring boot启动流程时,我们没有看到示例代码中@SpringBootApplication注解的解析过程,其实Spring boo...原创 2018-11-07 17:55:51 · 2290 阅读 · 0 评论 -
Spring boot内嵌tomcat源码解析
阅读须知版本:2.0.4文章中使用/* */注释的方法会做深入分析正文我们知道,在使用Spring boot搭建web工程时,我们不需要自己搭建一个tomcat服务器,只需要引入spring-boot-starter-web,在应用启动时会自动启动嵌入版的tomcat作为应用服务器,下面我们来分析这个过程。之前我们分析了Spring boot的启动流程和自动配置流程,而嵌入tomca...原创 2018-12-15 16:16:32 · 7654 阅读 · 9 评论 -
Spring源码阅读顺序
Spring源码解析之ApplicationContext,主要内容是介绍Spring上下文初始化时的一些主要步骤Spring源码解析之默认标签的解析,如文章标题,主要内容是<bean/>、<beans/>、<import/>、<alias/>四个默认标签的解析过程原创 2018-12-25 14:24:15 · 5853 阅读 · 10 评论 -
Spring源码解析之@Configuration注解解析
阅读须知研究了半天markdown也没发现怎么为代码块中的重点代码做特殊标记,所以这里使用//单行注释做代码的简单注释,而/**/多行注释的代码注释的同时会做深入分析,同时为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。正文现在我们使用Spring的时候,基本上很少使用标签配置的方式来声明bean了原创 2017-11-30 21:48:59 · 3485 阅读 · 3 评论 -
Spring源码解析之@Component注解的扫描
阅读须知文章中使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。本文的主要内容是分析Spring注解扫描流程的源码。正文承接上文,下面就是扫描的流程: ClassPathBeanDefinitionScanner:protected Set<原创 2018-01-10 08:54:00 · 7358 阅读 · 3 评论 -
Spring源码解析之context:component-scan标签解析
阅读须知Spring源码版本:4.3.8文章中使用/**/注释的方法会做深入分析正文现在我们使用Spring的时候,基本上很少使用标签配置的方式来声明bean了,都是使用注解的方式来声明bean,下面我们就来分析一下这部分的源码实现。 在使用注解之前,我们要首先配置一下<context:component-scan/>标签,我们就以这个标签的解析作为入口来分析,这里...原创 2018-01-10 08:44:14 · 2972 阅读 · 0 评论 -
Spring事务源码解析之tx:annotation-driven标签解析
Spring事务是我们日常工作中经常使用的一项技术,Spring提供了编程、注解、aop切面三种方式供我们使用Spring事务,其中编程式事务因为对代码入侵较大所以不被推荐使用,注解和aop切面的方式可以基于需求自行选择,我们以注解的方式为例来分析Spring事务的原理和源码实现。原创 2018-01-14 13:53:50 · 6308 阅读 · 0 评论 -
Spring 源码解析—事务执行
Spring 事务执行的源码详解,包含各种事务传播行为的处理原创 2018-01-14 16:11:17 · 2122 阅读 · 0 评论 -
SpringAOP源码解析之执行篇
阅读须知Spring源码版本:4.3.8文章中使用/**/注释的方法会做深入分析正文上篇文章中我们分析的Spring AOP代理创建的过程,JDK动态代理还有一个关键的角色就是InvocationHandler,创建代理对象时传入了this,所以我们断定,JdkDynamicAopProxy一定实现了InvocationHandler接口,分析其invoke方法:publ...原创 2018-01-14 15:15:05 · 3099 阅读 · 2 评论 -
Spring事务源码解析之事务回滚篇
阅读须知文章中使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。本文的主要内容是分析Spring MVC配置解析和执行前的准备工作源码。正文承接上文,Spring事务会根据目标业务方法的执行结果做提交或回滚操作,我们先看一下回滚操作: Tra原创 2018-01-14 17:53:12 · 4642 阅读 · 2 评论 -
Spring事务源码解析之事务提交篇
阅读须知Spring源码版本:4.3.8注释规则: //单行注释做普通注释/**/多行注释做深入分析建议配合Spring源码阅读正文承接上文,我们来看事务的提交操作: TransactionAspectSupport:protected void commitTransactionAfterReturning(TransactionInfo txInfo) { if (txI原创 2018-01-14 20:04:24 · 3225 阅读 · 0 评论 -
SpringAOP源码解析之代理创建篇
阅读须知研究了半天markdown也没发现怎么为代码块中的重点代码做特殊标记,所以这里使用//单行注释做代码的简单注释,而/**/多行注释的代码会做深入分析,同时为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读,本文对应的Spring源码的版本为4.3.8。正文Spring AOP是我们日常开发中经常使用的工具,常被用来做统一的日志、异常处理、监控等功能,使用原创 2017-12-30 18:23:08 · 1744 阅读 · 0 评论 -
Spring源码解析之默认标签的解析
阅读须知笔者研究了半天markdown也没发现怎么为代码块中的重点代码做特殊标记,所以这里使用//单行注释做代码的简单注释,而/**/多行注释的代码注释的同时会做深入分析,同时为了避免篇幅过长,删掉了Spring原来的注释和空行,建议配合Spring源代码进行阅读。正文ApplicationContext applicationContext = new ClassPathXmlApplicatio原创 2017-11-22 14:47:08 · 2929 阅读 · 0 评论 -
Spring源码解析之整合Mybatis
阅读须知整合包版本:1.3.1注释规则: //单行注释做普通注释/**/多行注释做深入分析建议配合源码阅读正文首先我们来看Spring整合Mybatis的配置:<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="conf原创 2018-01-25 23:31:05 · 6513 阅读 · 1 评论 -
Spring源码解析之ApplicationContext
阅读须知Spring源码版本:4.3.8文章中使用/**/注释的方法会做深入分析正文ApplicationContext applicationContext = new ClassPathXmlApplicationContext(&amp;quot;spring-config.xml&amp;quot;);这句代码相信大家都很熟悉,我们用这句代码加载配置文件来初始化Spring,下面我们就以这句代码作为...原创 2018-01-09 10:48:47 · 4479 阅读 · 0 评论 -
类加载过程结合Spring案例分析
案例最近在分析一个有关类加载过程的问题,代码如下:@Componentpublic class SpringContextUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void set...原创 2019-01-27 17:30:24 · 2203 阅读 · 0 评论