摘要: ServiceLoader:服务提供者加载器 SPI概念介绍 SPI:Service Provider Interfaces(服务提供者接口)。正如从SPI的名字去理解SPI就是Service提供者接口 SPI定位:给服务提供厂商与扩展框架功能的开发者使用的接口。 比如大名鼎鼎的JDBC驱动,Jav 阅读全文
posted @ 2021-12-11 22:28 残城碎梦 阅读(512) 评论(0) 推荐(0) 编辑
摘要: JDK中的事件驱动机制 在了解其它之前,有必要先了解下JDK为我们提供的事件驱动(EventListener、EventObject)、观察者模式(Observer)。 JDK不仅提供了Observable类、Observer接口支持观察者模式,而且也提供了EventObject、EventList 阅读全文
posted @ 2021-12-11 21:14 残城碎梦 阅读(967) 评论(0) 推荐(1) 编辑
摘要: 在阅读Spring源码的时候,经常会遇见一些处理器、提供器之类的组件,有的时候不深入去理解它的含义,确实还读不下去了。 为了方便自己流畅的阅读下去,本文介绍Spring提供的处理组件,尽量的解释清楚它们的作用甚至原理,以便我们能更自由的阅读。 ParameterNameDiscoverer:获取方法 阅读全文
posted @ 2021-12-11 19:05 残城碎梦 阅读(595) 评论(0) 推荐(1) 编辑
摘要: ConfigurationClassParser#doProcessConfigurationClass protected final SourceClass doProcessConfigurationClass(ConfigurationClass configClass, SourceCla 阅读全文
posted @ 2021-12-11 18:07 残城碎梦 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 为什么要控制Bean的加载顺序? @Order注解等并不能控制Bean的加载顺序的~~因为Spring在解析Bean的时候,根本就没有参考这个注解。另外@Configuration配置类的加载,也不会受到@Order注解的影响,它拿到配置的数组后,仅仅就是一个for循环遍历去解析。 另外需要说明的一 阅读全文
posted @ 2021-12-11 17:14 残城碎梦 阅读(5301) 评论(0) 推荐(0) 编辑
摘要: 不可否认的是,把Bean交给Spring管理,确实极其的方便,优点一大把,并且还几乎没有啥缺点。这也就是为何咱们一言不合就把Bean扔给Spring的原因。(在Spring的技术栈里这么做,完全没有问题) 然而,就Spring框架本身而言。它的强大的依赖注入,不仅仅能给自家的Bean使用,还能赋能给 阅读全文
posted @ 2021-12-11 15:56 残城碎梦 阅读(287) 评论(0) 推荐(0) 编辑
摘要: BeanFactory和ApplicationContext 区别 BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用 基本区别 BeanFactory:BeanFacotry是Spring中最 阅读全文
posted @ 2021-12-11 14:39 残城碎梦 阅读(423) 评论(0) 推荐(0) 编辑
摘要: @Import模式向容器导入Bean是一种非常重要的方式,特别是在注解驱动的Spring项目中,@Enablexxx的设计模式中有大量的使用,在当下最流行的Spring Boot中,被用来做底层抽象、组件式的设计。 比如我们熟悉的:@EnableAsync、@EnableAspectJAutoPro 阅读全文
posted @ 2021-12-11 12:54 残城碎梦 阅读(1237) 评论(0) 推荐(1) 编辑
摘要: 在介绍Spring IOC容器的刷新(初始化)过程,以及Spring 容器的Bean的实例化、初始化过程。我们提到了泛型依赖注入,本文就来聊聊Spring是如何做到的。 先来看一个例子: // 准备一个带泛型的Bean @Getter @Setter @NoArgsConstructor @AllA 阅读全文
posted @ 2021-12-11 08:28 残城碎梦 阅读(956) 评论(0) 推荐(1) 编辑