Yourbatman的博客

一个可以沉迷于技术的程序猿

【小家Spring】Spring标准处理组件大合集(ParameterNameDiscoverer、AutowireCandidateResolver、ResolvableType。。。)

前言 本篇博文更像是一个工具文章,在阅读Spring源码的时候,经常会遇见一些处理器、提供器之类的组件,有的时候不深入去理解它的含义,确实还读不下去了。 为了方便自己流畅的阅读下去,特开本文记录一些关键的,使用的Spring提供的处理组件,尽量的解释清楚它们的作用甚至原理,以便我们能更自由的阅读,...

2019-03-25 21:07:20

阅读数 2

评论数 0

【小家Java】你真的了解Java泛型参数吗?细说java.lang.reflect.Type(ParameterizedType、TypeVariable、WildcardType...)

前言 咋一看标题,你可能会说。不就是泛型吗,平时都使用着呢,没什么难的吧。 感觉了解了,但是真正的深入才知道自己了解甚少! 没有泛型的时候,只有原始类型。此时,所有的原始类型都通过字节码文件类Class类进行抽象。Class类的一个具体对象就代表一个指定的原始类型 泛型出现之后,扩充了数据类型。从...

2019-03-25 20:29:01

阅读数 11

评论数 0

【小家Spring】聊聊Spring中的那些【Metadata】,举例讲解:AnnotationMetadata、 MethodMetadata

前言 元数据:数据的数据

2019-03-24 21:01:02

阅读数 5

评论数 0

【小家Spring】Spring贡献的多个注解相关的工具类:AnnotationUtils、AnnotatedElementUtils、AnnotationConfigUtils...

AliasFor解释的使用场景 前言 本文主要聊聊Spring提供的多个关于注解相关的工具类:AnnotationUtils和AnnotatedElementUtils等等 因为很多逻辑都封装在了工具类里面,因此要理解Spring的深层意思,有时候不了解工具类也是比较麻烦的 虽然说都是Spring...

2019-03-24 19:32:21

阅读数 4

评论数 0

【小家Spring】Spring IoC容器中核心定义之------BeanDefinition深入分析(RootBeanDefinition、ChildBeanDefinition...)

前言 在前面分析Spring IoC容器的时候,贯穿全文的一个概念:Bean定义信息。它是Spring容器的一个核心概念,那么本文就深入分析一下BeanDefinition这个接口(类)。 Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDefinition结构。 不管是...

2019-03-23 17:03:34

阅读数 4

评论数 0

【小家Spring】高性能关键技术之---体验Spring MVC的异步模式(ResponseBodyEmitter、SseEmitter、StreamingResponseBody) 高级使用篇

前言 上篇博文:【小家Spring】高性能关键技术之—体验Spring MVC的异步模式(Callable、WebAsyncTask、DeferredResult) 基础使用篇 介绍了Spring MVC异步模式的基本使用,相信小伙伴们基本的使用都能运用自如了。 那么本篇文章主要介绍一下异步模式的...

2019-03-23 10:23:54

阅读数 5

评论数 0

【小家Spring】控制Spring IoC容器对Bean(含@Configuration配置类)的加载顺序(@DependsOn注解的使用)

前言 首先,先说明一点:此篇博文相对来说是比较小的专题,只讲解Spring IoC加载Bean的顺序问题。 为了更好的了解这里面的原理,建议先了解Spring容器内部对Bean执行初始化的原理,因此推荐下面博文(若已了解,请忽略): 【小家Spring】Spring IOC容器启动流程 Abstr...

2019-03-21 18:02:39

阅读数 8

评论数 0

【小家Spring】高性能关键技术之---体验Spring MVC的异步模式(Callable、WebAsyncTask、DeferredResult) 基础使用篇

前言 现在已经在2019年,这个时候再来谈Spring MVC的异步模式,好像有点老掉牙了。毕竟现在都Spring5的时代了,甚至将来肯定是webflux的天下了。 而Spring MVC的异步请求模式是Spring3.2就推出了,它是基于基Servlet3.0规范实现的,而此规范是2011年推出...

2019-03-20 21:38:13

阅读数 12

评论数 0

【小家Spring】为脱离Spring IOC容器管理的Bean赋能【依赖注入】的能力,并分析原理(借助AutowireCapableBeanFactory赋能)

前言 咋一看标题,小伙伴们是否还有点小激动呢?觉得这怎么可能呢? 可能我们(大众)都是这样认为:自从用上了Spring这个优秀的框架,一般小伙伴们都是一言不合就把对象塞进Spring的IOC容器里面,交给它来替我们管理。 不可否认的是,把Bean交给Spring管理,确实极其的方便,优点一大把,并...

2019-03-19 18:14:05

阅读数 151

评论数 0

【小家Spring】Spring解析@ComponentScan注解源码分析(ComponentScanAnnotationParser、ClassPathBeanDefinitionScanner)

前言 前面我在这篇博文:【小家Spring】Spring解析@Configuration注解的处理器:ConfigurationClassPostProcessor(ConfigurationClassParser) 解释Spring解析@Configuration的时候,提到过了解析:@Prop...

2019-03-18 18:05:52

阅读数 15

评论数 0

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系

前言 前面已经讲述了很多Spring容器启动、解析、依赖注入等等源码层面的东西了,但是小伙伴有没有一种感觉就是:Spring的设计者把面向对象使用到了极致(使用得非常的好),并且它吧职责单一原则也是使用到了极致。 它各个功能区块,通过接口都进行隔离得很开,这是让Spring能组件化开发,可插拔,变...

2019-03-17 21:52:14

阅读数 17

评论数 0

【小家Spring】Spring IOC容器启动流程 AbstractApplicationContext#refresh()方法源码分析(二),Spring容器启动/刷新的完整总结

前言 在上一篇文章:【小家Spring】Spring IOC容器启动流程 AbstractApplicationContext#refresh()方法源码分析(一)中已经介绍了前五步,现在Spring IOC容器的工厂环境已经都准备好了。 Bean工厂可以简单理解为一个钩子容器,里面注册有众多的B...

2019-03-16 23:34:20

阅读数 29

评论数 0

【小家Spring】Spring向容器注册Bean的高级应用:@Import、DeferredImportSelector、ImportBeanDefinitionRegistrar的使用

前言 关于@Import在之前的文章里,也都零散的提到过多次,也支出了它的重要性,甚至它的一个解析过程。 但是由于@Import模式向容器导入Bean确实非常非常的重要,特别是在注解驱动的Spring项目中、@Enablexxx的设计模式中有大量的使用,在当下最流行的Spring Boot中,可以...

2019-03-15 14:07:02

阅读数 17

评论数 0

【小家Spring】细说Spring IOC容器的自动装配(@Autowired),以及Spring4.0新特性之【泛型依赖注入】的源码级解析

前言 前面我发布了Spring IOC容器的刷新(初始化)过程,以及Spring 容器的Bean的实例化、初始化过程。其中有一个步骤小伙伴们比较关心,也提问的比较多,那就是泛型依赖注入。鉴于之前对这一块描述得也不是很详细,鉴于此处还是比较重要的,因此本文专门用篇幅聊聊这个事 看本篇文章之前,建议至...

2019-03-13 21:50:05

阅读数 21

评论数 0

【小家Spring】AbstractAutowireCapableBeanFactory#populateBean实现Bean的属性赋值和initializeBean对Bean的初始化

前言 在上一篇博文:【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析 源码分析的时候,留下两个重要的步骤还没有说,一个是属性赋值的populateBean(...

2019-03-10 16:09:00

阅读数 22

评论数 0

【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析

前言 这边博文,主要讲解我们IOC容器的主菜:Bean的实例化。 通过之前跟踪Spring IOC刷新的源码,我们所有的剩余的单例Bean都是通过此处来进行初始化的。最重要的一个方法就为:DefaultListableBeanFactory#preInstantiateSingletons 然后内...

2019-03-10 10:54:50

阅读数 16

评论数 0

【小家Spring】Spring IOC容器启动流程 AbstractApplicationContext#refresh()方法源码分析(一)

前言 还记得我在这篇博文:【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析) 里留了几个非常重要,但是没有解释的方法。其中有一个非常重要的方法ApplicationContext#refresh()方...

2019-03-04 15:01:21

阅读数 29

评论数 0

【小家Spring】Spring解析@Configuration注解的处理器:ConfigurationClassPostProcessor(ConfigurationClassParser)

前言 在Spring3.0以后,官方推荐我们使用注解去驱动Spring应用。那么很多人就一下子懵了,不需要xml配置文件了,那我的那些配置项怎么办呢? @Configuration是Spring3.0推出来的注解,用来代替xml配置文件。 若一个Class类被标注了这个注解,我们就认为这个类就是一...

2019-03-03 22:50:28

阅读数 31

评论数 0

【小家Spring】Spring容器加载Bean定义信息的两员大将:AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner

前言 在分析Spring IOC容器启动流程的时候,在加载Bean定义信息BeanDefinition的时候,用到了两个非常关键的类:AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner。它俩完成对Bean信息的加载。 因此为了更...

2019-03-01 20:04:03

阅读数 40

评论数 0

【小家Spring】Spring MVC执行流程 FrameworkServlet、DispatcherServlet源码分析(processRequest、doDispatch)

前言 本篇博文会更偏向于应用、更加宏观一些。 但是,本人还是建议,在了解Spring MVC的执行流程之前,先参阅这两篇博文: 【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析) 【小家Spring】...

2019-02-28 17:20:17

阅读数 18

评论数 0

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