文章 2024-02-01 来自:开发者社区

SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)

概述Spring 的核心思想即是容器。整个容器 refresh 时,外部看似风平浪静,内部实则一片汪洋大海。另外整个流程严格遵守开闭原则,内部对修改关闭,对扩展开放。可以这么理解: 把 Spring 容器理解为一个钥匙环,上面挂满了钥匙,每个钥匙理解为一个扩展接口。钥匙的顺序是固定的,可理解为接口的调用顺序固定,对修改关闭。每个钥匙可以用来做不同的事情,可理解为扩展接口的不同实现,对扩展开放。S....

SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)
文章 2023-08-29 来自:开发者社区

深入理解Spring源码之IOC 扩展原理BeanFactoryPostProcessor和事件监听ApplicationListener

2.BeanFactoryPostProcessor一个好的框架必备的特性至少得有开闭原则,可扩展性BeanFactoryPostProcessor也是Spring可扩展性的一个体现,我们读一下这个接口的源码public interface BeanFactoryPostProcessor { /** * Modify the application context's int...

文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(十)、SpringBoot中重要event介绍,顺便简单讲下SB的启动流程(二)

上一篇我们讲到了run方法中的prepareContext那里,并且已经讲了四种SpringBoot的事件,接下来我们把这些在本篇讲完.ApplicationStartedEvent我们继续来顺着run方法往下看:// 执行AbstractApplicationContext的refresh方法,即所谓的刷新动作 refreshContext(context); ...

文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(九)、SpringBoot中重要event介绍,顺便简单讲下SB的启动流程(一)

之前我在这篇 Spring中的event以及自定义event中介绍了event的概念以及自定义我们event及其对应的listener,现在我们已经能够自定义我们自己的event了,但是其实这种扩展在实际的开发中用的并不多,更多的时候,我们更期望在容器启动或者容器销毁以及容器刷新的时候去做一些事情,这时候就需要Spring自身提供的几种事件了。这里没有说自定义事件就没有Spring原本为我们提供....

文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(八)、环境变量的校验

我们在讲refresh方法的那篇中说到了一个prepareRefresh的方法,这个方法主要是记录容器的状态以及对环境变量的校验,我们来看看这个方法的代码:protected void prepareRefresh() { // 1. 记录下容器开始刷新的时间 this.startupDate = System.currentTimeMillis(); // 2. 把容器标为激活状态...

深入理解Spring IOC之扩展篇(八)、环境变量的校验
文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(七)、Spring中的event以及自定义event

本篇说的是Spring中event的概念以及对它的扩展,顺便说说它的原理。Spring中事件的顶层类是ApplicationEvent,我们自定义事件只需要继承这个类即可(更好的选择其实是继承ApplicationContextEvent),好,我们那就按照这个思路自定义一下我们自己的事件:public class MyEvent1 extends ApplicationEvent { ...

深入理解Spring IOC之扩展篇(七)、Spring中的event以及自定义event
文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(六)、基于Aop的自定义注解

上篇我们基于Spring的各种组件和注解把我们的业务逻辑和Spring进行了集成,其中我们定义了很多我们自己的注解。在本篇我们也将定义我们自己的注解,但是目的和上篇不同的是,上篇目的自定义注解是为了集成,而这篇的自定义注解是为了增强。在demo开始之前,我先简单说下Aop中的这几个重要概念:连接点(Joinpoint):在程序执行过程中某个特定的点,比如类初始化前、类初始化后,方法调用前,方法调....

深入理解Spring IOC之扩展篇(六)、基于Aop的自定义注解
文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(五)、基于注解整合Spring框架

本篇讲的是如何将我们自己的业务逻辑和Spring框架整合起来,整合的方式主要采用的是注解,里面涉及到了多个知识点。我们的目的是做出我们自己的注解,主要是标在接口上,当调用接口里相应的方法的时候,就会执行我们自己的逻辑。对的,就是现在的MyBatis和Feign的整合方式,这种也是现在比较容易的,如果你业务里面xml用的多,你也可以结合xml来搞,拓展xml的文章我之前已经说过,你可以翻回去看看。....

深入理解Spring IOC之扩展篇(五)、基于注解整合Spring框架
文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(四)、Aware接口

本篇讲的是Spring中的Aware接口,也应该是整个系列中最简单的一篇了,但是简单并不代表这玩意不重要,我们很多时候还是会用Aware接口去为我们做事情的。我们知道,使用了Spring容器之后,我们创建对象这件事情完完全全的交给了Spring,在创建好了之后我们直接拿来用就可以了,容器内的东西对于我们的bean来说完全是透明的。为了让我们的bean可以感知到容器内的一些东西,所以Spring为....

深入理解Spring IOC之扩展篇(四)、Aware接口
文章 2023-06-15 来自:开发者社区

深入理解Spring IOC之扩展篇(三)、InitializingBean、@PostConstruct、SmartInitializingSingleton

本文主要介绍三个初始化的方式,分别是@PostConstruct,InitializingBean,以及SmartInitializingSingleton这三个,我们直接三个一起用,来看看代码哈。@Component public class TestP implements InitializingBean, SmartInitializingSingleton { @PostCon...

深入理解Spring IOC之扩展篇(三)、InitializingBean、@PostConstruct、SmartInitializingSingleton

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

微服务

构建可靠、高效、易扩展的技术基石

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等