spring
文章平均质量分 95
Spring源码解析
Static_lin
热爱技术热爱学习的程序猿
展开
-
从RefreshScope实现原理看刷新配置失效问题
前言在SpringIOC中,我们熟知的BeanScope有单例(singleton)、原型(prototype), Bean的Scope影响了Bean的创建方式,例如创建Scope=singleton的Bean时,IOC会保存实例在一个Map中,保证这个Bean在一个IOC上下文有且仅有一个实例。SpringCloud新增了一个refresh范围的scope,同样用了一种独特的方式改变了Bean的创建方式,使得其可以通过外部化配置(.properties)的刷新,在应用不需要重启的情况下热加载新的外部化配原创 2020-06-01 09:03:12 · 8495 阅读 · 4 评论 -
SpringBoot自定义自动装配与Conditional失效问题
文章目录前言自动装配规则类命名规则package命名规则jar包构建规则jar包结构jar包取名构建自定义的自动装配@ConditionOnBean失效问题为何非自动装配的配置会失效?为何自动装配的配置就有效?前言参考书籍《SpringBoot编程思想》— 小马哥mercyblitz此书是难得的讲述SpringBoot的一本好书,由Spring的注解发展史介绍到Spring的注解驱动,以一...原创 2019-08-01 09:29:20 · 1867 阅读 · 0 评论 -
揭秘SpringBoot自动装配的魔法
文章目录前言自动装配的魔法@ComponentScan扫描并注册@EnableAutoConfiguration自动注册Bean获取候选装配的Bean类名SpringFactories加载机制获取SpringFactories中指定的factory排除候选装配的Bean过滤候选装配的Bean发布自动装配获取完成事件自定义自动装配监听器总结前言首先,自动装配包含了哪些的装配?自动将包下的被打...原创 2019-08-01 09:22:41 · 898 阅读 · 1 评论 -
Spring手动挡装配Bean之Enable模式
文章目录前言@Enable驱动模式自定义Enable模式注解驱动@Configuration方式接口编程ImportSelector接口方式ImportBeanDefinitionRegistrar接口方式手动挡装配原理ConfigurationClassPostProcessor的注册解析@Import总结前言在SpringBoot开发中,我们经常见到Enable的模式开发,例如在Sprin...原创 2019-08-01 09:19:25 · 1049 阅读 · 0 评论 -
Spring源码解析之注解驱动的"发动机"
文章目录前言BeanFactoryPostProcessor处理判断是否需要被解析Full完全模式与Lite轻量模式解析BeanDefinition@Conditional条件过滤解析配置注解@ComponentScan注解的解析@Bean方法的解析@Import注解的解析延迟导入解析总结注册Bean阶段注解驱动处理总结前言本篇文章将解析ConfigurationClassPostProces...原创 2019-08-01 09:16:22 · 817 阅读 · 0 评论 -
深度分析Spring中的构造器注入
深入源码分析Spring中的构造器注入文章目录深入源码分析Spring中的构造器注入1. 示例疑问点小结2. 依赖注入伊始3. 初始化Bean4.总结在往期文章中我没有提到在Spring中是如何将Bean注入到构造器,其实这个过程发生在实例化Bean时期,由AbstractAutowireCapableBeanFactory的createBeanInstance方法来做的。若想快速得到结论...原创 2019-01-02 09:30:21 · 23924 阅读 · 10 评论 -
深入源码分析SpringIOC(四)
Spring扩展点之番外篇(自定义标签)文章目录Spring扩展点之番外篇(自定义标签)1. 自定义标签简介2. 自定义标签的使用3. 深入源码分析自定义标签实现原理3.1 获取Handler3.2 使用Handler调用对应的Parser4.总结1. 自定义标签简介在之前的文章中,我们在深入源码分析SpringIOC(一)的章节里提到了IOC容器读取Bean的过程是定位、加载、注册,而在加...原创 2018-12-18 17:49:43 · 474 阅读 · 4 评论 -
深入源码分析SpringIOC(二)
IOC之Bean的初始化(实例化与依赖注入)文章目录IOC之Bean的初始化(实例化与依赖注入)前情概要初始化Bean解决循环依赖的问题什么是循环依赖?Spring中如何解决循环依赖循环依赖总结总结前情概要回顾之前的内容IOC初始化之准备工作(定位、加载、注册) ,说到在ApplicationContext初始化时,会先去根据资源路径去定位、加载并且注册Bean信息到BeanFactory中...原创 2018-12-11 13:52:22 · 855 阅读 · 0 评论 -
深入源码分析SpringMVC底层原理(二)
深入分析SpringMVC请求处理过程文章目录深入分析SpringMVC请求处理过程1. DispatcherServlet处理请求1.1 寻找Handler1.2 没有找到Handler的处理1.3 根据Handler寻找Adapter1.4 拦截器的处理1.5 Adapter处理请求1.6 异常视图的处理1.7 页面的跳转2.总结在上一篇文章中我们讲到了SpringMVC的初始化,分别初...原创 2018-12-27 10:24:39 · 712 阅读 · 4 评论 -
深入源码分析SpringMVC底层原理(一)
初识SpringMVC与其初始化文章目录初识SpringMVC与其初始化1. 初探SpringMVC基本流程2. ContextLoaderListener3.DispatcherServlet3.1 初始化WebApplicationContext3.2 刷新4. 小结1. 初探SpringMVC基本流程先来看一张图(引用自《Spring实战》第四版 ):这张图大致描述了SpringM...原创 2018-12-27 10:22:35 · 2012 阅读 · 4 评论 -
深入源码分析SpringIOC(一)
IOC初始化之准备工作(定位、加载、注册)文章目录IOC初始化之准备工作(定位、加载、注册)Spring基本认识介绍几个重要的类BeanFactoryBeanDefinitionApplicationContextSpring容器(定位、加载、注册)总结Spring基本认识初衷:Spring框架一开始是为了解决开发的复杂性而存在的,所以归根解底他的目标就是四个字简化开发,这四个字几乎贯穿S...原创 2018-12-10 17:06:58 · 824 阅读 · 1 评论 -
Spring学习笔记(前言)
写在前面(序言) 时间飞逝,距离我上次写2018下半年学习计划已经过了6个月,眼看还有半个多月2018下半年就过去了,但回头看看计划,发现还有大半没有学习到,很多知识点其实都是易学难精,例如我即将要写的这个Spring,如果只是会用的话相信只要几天时间就可以,但是你如果深究其原理,其实是一件很需要意志力并且时间的事,我看源码的过程是一次兴趣使然,先看了Java类库的集合类源码,觉得特别有意思,...原创 2018-12-10 10:35:14 · 1561 阅读 · 0 评论 -
深入源码分析SpringAOP实现原理
深入源码分析SpringAOP实现原理阅读这篇文章前,最好有代理模式的基础,以及了解关于Spring扩展点例如BeanPostProcessor和如何使用自定义标签集成Spring,这些文章在我的博客里都能找到。当然,也最好有使用AOP的经验,这篇文章不会讲解如何使用AOP。文章目录深入源码分析SpringAOP实现原理1. AOP简介2. 自定义标签开启AOP3. 注册Annotatio...原创 2018-12-20 17:59:41 · 1012 阅读 · 0 评论 -
深入Spring事务源码剖析事务(四)
深入Spring事务之实际场景下各个传播特性对事务的影响文章目录深入Spring事务之实际场景下各个传播特性对事务的影响概述环境准备场景简介model层Mapper层Service层Controller层在多事务的场景下实验各个传播特性(外层事务传播特性为**REQUIRED**时)内层事务为**REQUIRES_NEW** 时当外层事务正常,内层事务抛出异常时当外层事务抛出异常,内层事务无异常...原创 2018-12-07 09:37:38 · 1118 阅读 · 0 评论 -
深入Spring事务源码剖析事务(三)
深入Spring事务之分析各个传播特性的场景文章目录深入Spring事务之分析各个传播特性的场景前情概要回顾什么时候holder中的Active为true?回滚几个关键点!提交的几个关键点!挂起与恢复挂起恢复绑定与解绑绑定解绑结合传播特性去理解挂起、恢复、绑定、解绑**解析几种需要挂起的传播特性的情况**(当前存在事务情况下):存在事务情况下的**REQUIRES_NEW**总结:存在事务情况下...原创 2018-12-06 20:47:01 · 935 阅读 · 0 评论 -
深入Spring事务源码剖析事务(二)
深入Spring事务源码剖析事务之事务增强器文章目录深入Spring事务源码剖析事务之事务增强器前情概要事务增强器 TransactionInterceptor类继承关系核心事务底层封装实现方法处理事务异常的情况回顾Status几个关键点!总结事务异常情况处理事务无异常准备提交的情况回顾Status几个关键点!总结事务无异常准备提交情况小结**doCleanupAfterCompletion**...原创 2018-12-06 16:40:37 · 1444 阅读 · 4 评论 -
深入源码分析SpringIOC(三)
IOC的扩展点之灵活运用Spring框架文章目录IOC的扩展点之灵活运用Spring框架1. 初始化ApplicationContext2. BeanFactory的后处理2.1 BeanFactoryPostProcessor典型应用2.2 BeanFactoryPostProcessor注册与调用过程2.3 BeanFactory后处理小结3. BeanPostProcessor3.1 注册...原创 2018-12-13 16:24:16 · 431 阅读 · 0 评论 -
深入Spring事务源码剖析事务(一)
深入Spring事务源码剖析事务文章目录深入Spring事务源码剖析事务事务简介Spring事务基本原理与传播属性Spring中的传播属性Spring事务的基本原理深入源码剖析Spring事务的实现原理事务配置的起始点(配置文件开启事务)自定义标签深入源码分析代理流程总结事务简介此篇文章需要有SpringAOP基础,知道AOP底层原理可以更好的理解Spring的事务处理。首先事务是什么呢?必...原创 2018-12-06 11:40:25 · 1651 阅读 · 2 评论