【Spring Boot2.X】
文章平均质量分 88
Spring Boot2.X从入门到精通,实例解读,源码分析
小小工匠
show me the code ,change the world
展开
-
Spring Boot - 开启log-request-details详细记录调测Controller接口
在Spring Boot项目中,调试Controller接口的请求和响应信息可以极大地帮助开发人员排查问题并确保应用程序的安全性和性能。原创 2024-08-10 06:45:00 · 1061 阅读 · 0 评论 -
Spring Boot - 通过ServletRequestHandledEvent事件实现接口请求的性能监控
在Spring框架中,监控接口请求的性能可以通过事件实现。这种方法简单有效,能够帮助开发者实时跟踪和分析请求的性能。概述:自定义拦截器可以用来在请求处理的不同阶段(如请求前、请求后、请求完成后)添加额外的逻辑。实现步骤实现接口,覆盖其中的方法,如preHandlepostHandle、和。在这些方法中记录请求开始时间、结束时间,计算处理时间。将拦截器注册到Spring MVC配置中。示例代码@Override@Override。原创 2024-08-09 22:03:59 · 1361 阅读 · 0 评论 -
Spring Boot - 在Spring Boot中实现灵活的API版本控制(下)_ 封装场景启动器Starter
import org/*** 接口版本标识注解/*** 指定API的版本号。* 此方法返回一个整型数组,数组中的每个元素代表一个API版本号。* @return 代表API版本号的整数数组。/*** 接口版本标识注解/*** 指定API的版本号。* 此方法返回一个整型数组,数组中的每个元素代表一个API版本号。* @return 代表API版本号的整数数组。/*** 接口版本标识注解/*** 指定API的版本号。原创 2024-08-08 17:30:36 · 1728 阅读 · 0 评论 -
Spring Boot - 在Spring Boot中实现灵活的API版本控制(上)
实现方式:通过自定义注解标记API版本,并使用拦截器进行版本控制。步骤创建自定义注解创建版本拦截器@Override= null) {配置拦截器@Override在控制器中使用注解// 返回 V1 版本的产品列表// 返回 V2 版本的产品列表。原创 2024-08-07 21:00:19 · 1837 阅读 · 0 评论 -
Spring Boot - 优雅实现支持通配符和IP段的IP访问黑白名单机制
IP访问黑白名单机制在许多场景中是非常必要的,其主要目的在于提高系统的安全性和控制访问权限。以下是一些主要原因:1. 安全性防止恶意攻击通过限制特定IP地址的访问,可以有效防止DDoS攻击、暴力破解和其他形式的恶意访问。减少暴露面仅允许特定的可信IP访问系统,可以减少潜在攻击者的攻击面。2. 访问控制区分内部和外部访问在企业环境中,可以限制只有内部IP(例如公司局域网IP)才能访问某些敏感资源。按区域限制访问可以根据地理位置或区域限制访问,例如只允许来自特定国家的IP访问。原创 2024-07-26 20:15:00 · 1538 阅读 · 0 评论 -
Spring Boot - 利用MDC(Mapped Diagnostic Context)实现轻量级同步/异步日志追踪
MDC(Mapped Diagnostic Context)是一个在日志框架中常用的概念,主要用于在多线程环境中关联和传递一些上下文信息,以便在日志输出中包含这些信息,从而实现更好的日志记录和调试。在Java中,常见的日志框架如Log4j、Logback和Log4j2都提供了对MDC的支持。MDC允许在多线程环境中将上下文信息与线程相关联。可以在应用程序的不同部分设置一些上下文信息,并确保在同一线程中的后续日志记录中能够访问到这些信息。MDC特别适用于跟踪请求或会话相关的信息,如请求ID、会话ID等。原创 2024-04-14 14:01:11 · 3114 阅读 · 0 评论 -
Java - 深入四大限流算法:原理、实现与应用
限流算法是一种在分布式系统中广泛使用的技术,用于控制对系统资源的访问速率,以保护系统免受恶意攻击或突发流量导致的过载。API 网关限流:在微服务架构中,API 网关通常是系统对外的唯一入口,需要限制单个用户或IP在一定时间内的请求次数,以保护后端服务不受恶意请求或突发流量的冲击。分布式系统中的服务限流:在分布式系统中,各个服务之间可能会有调用关系,通过限流可以控制服务间的调用频率,避免服务间因为调用过于频繁而造成的服务过载。微服务间的接口限流。原创 2024-01-21 11:43:20 · 4268 阅读 · 0 评论 -
Spring Boot - 利用Resilience4j-Circuitbreaker实现断路器模式_防止级联故障
Resilience4J 是一个针对 Java 8 应用程序的轻量级容错和弹性库。它设计用于在分布式系统中的服务之间提供弹性和容错性。Resilience4J 的名字来源于它提供的核心功能,即让系统(服务)能够“弹性”(resilient)地应对各种失败情况,包括网络问题、第三方服务故障等。断路器(Circuit Breaker):当检测到服务异常或超时,断路器会打开,阻止进一步的请求发送到该服务。一段时间后(通常是秒级),断路器会进入半开状态,允许一个测试请求通过以检查服务是否恢复。原创 2024-01-18 06:30:00 · 4657 阅读 · 0 评论 -
Spring Boot - 利用Resilience4j-RateLimiter进行流量控制和服务降级
Resilience4J 是一个针对 Java 8 应用程序的轻量级容错和弹性库。它设计用于在分布式系统中的服务之间提供弹性和容错性。Resilience4J 的名字来源于它提供的核心功能,即让系统(服务)能够“弹性”(resilient)地应对各种失败情况,包括网络问题、第三方服务故障等。断路器(Circuit Breaker):当检测到服务异常或超时,断路器会打开,阻止进一步的请求发送到该服务。一段时间后(通常是秒级),断路器会进入半开状态,允许一个测试请求通过以检查服务是否恢复。原创 2024-01-15 05:45:00 · 5068 阅读 · 0 评论 -
Spring Boot - Application Events 同步 VS 异步 发布订阅事件实战
这允许你将任务标记为异步,并且可以在不同的线程中执行它们,从而提高应用程序的响应能力和吞吐量。注解允许你定义一个自定义的线程池,Spring 会使用这个线程池来执行异步任务。时,它将在一个单独的线程中运行,而不是在调用它的线程中立即执行。是一个在 Spring 框架中使用的注解,它用于启用 Spring 的异步执行功能。注解来标记一个方法为异步执行。当方法被调用时,它将在一个单独的线程中运行,而不是在调用线程中立即执行。是一个方法级别的注解,在 Spring 框架中用于标识一个方法应该以异步方式执行。原创 2024-01-13 21:04:39 · 4262 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationFailedEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-13 17:12:50 · 4089 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationReadyEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-13 10:00:00 · 4707 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_AvailabilityChangeEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-13 08:45:00 · 3448 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationStartedEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-13 07:30:00 · 4149 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ContextRefreshedListener
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-13 06:15:00 · 3901 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationPreparedEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-12 20:30:00 · 4800 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationContextInitializedEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-12 05:45:00 · 4914 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-11 22:15:00 · 4380 阅读 · 0 评论 -
Spring Boot - Application Events 的发布顺序_ApplicationStartingEvent
Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。原创 2024-01-11 20:15:00 · 4256 阅读 · 0 评论 -
Spring Boot - 瘦身大作战:优雅应对Spring Boot Fat Jar
类是特殊的引导程序类,用作可执行jar的主要入口点。它是jar文件中的实际Main-Class,用于设置适当的URLClassLoader并最终调用main()方法。MODULE,将所有的依赖库打包(scope为provided的除外),但是不打包Spring Boot的任何Launcher。它们的目的是从目录中的嵌套jar文件或war文件(而不是在类路径中显式的文件)加载资源(.class文件等)。WAR,即通常的可执行war,需要的servlet容器依赖位于WEB-INF/lib-provided。原创 2023-11-25 07:45:00 · 4675 阅读 · 0 评论 -
Spring Boot - Rest VS GraphQL
REST(Representational State Transfer)和GraphQL都是用于构建Web服务的API设计和交互方式,它们有不同的特点和优劣势。架构风格:REST是一种架构风格,强调资源的状态和标识的分离,它通常基于HTTP协议来进行通信。资源导向:REST API将应用程序的数据建模为一组资源,每个资源都有唯一的URL标识,例如/users/1表示用户1的信息。原创 2023-09-18 06:15:00 · 6193 阅读 · 0 评论 -
每日一博 - 闲聊 API GateWay
API 网关可以将不同的通信协议进行转换,使得前端客户端可以使用不同的通信协议(如HTTP、WebSocket、gRPC等)与后端服务进行通信,而无需直接处理协议转换的复杂性。总之,API 网关在微服务架构中起到了关键的作用,它提供了一种统一的入口点,用于管理、保护、监控和优化API的访问,有助于构建可扩展、高可用性和安全性的分布式应用程序。:API 网关可以对请求和响应进行转换,例如,将数据从一个格式转换为另一个格式(如JSON到XML),或者对请求进行参数验证和修改,以适应后端服务的需求。原创 2023-09-15 19:45:00 · 6203 阅读 · 0 评论 -
Spring Boot - 用JUnit 5构建完美的Spring Boot测试套件
JUnit 4和JUnit 5之间的一些重要区别,JUnit 5引入了许多新的功能和改进,以提供更灵活、强大的测试框架。你可以根据项目的需要选择适合的JUnit版本。这些示例演示了如何使用这些注解来编写JUnit 5和Spring Boot测试。您可以根据您的具体需求和测试场景进行相应的配置和使用。以下是JUnit 4和JUnit 5注解之间的一些主要区别。原创 2023-09-11 23:45:00 · 7218 阅读 · 0 评论 -
Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理
迁移到 JUnit 5 需要一些工作,特别是如果你的项目已经使用了 JUnit 4。最佳选择取决于你的具体需求和项目的情况。如果你正在开始一个新项目,那么考虑使用 JUnit 5,因为它提供了更多的功能和灵活性。如果你的项目已经使用 JUnit 4,那么可以逐步迁移到 JUnit 5,以便利用新功能和改进。当然了1.0.0.RELEASE ~ 1.0.3.RELEASE的版本也是使用的 junit4 (版本不同) ,只是没有提供 @SpringBootTest注解。我这里用的是 2022。原创 2023-09-11 22:15:00 · 7011 阅读 · 0 评论 -
Spring - DisposableBean扩展接口
Spring Boot - 扩展接口一览扩展点只有一个方法,触发时机为当此对象销毁时,会自动执行该方法。比如说运行时,就会触发这个方法。当Spring容器销毁时,会将容器中的所有单例bean先全部销。调用链如下:继续继续 重点调用bean的封装类方法总结一下:先从对象中获取当前bean对象转化成对象,然后直接调用方法;然后再通过反射调用bean配置的方法原创 2022-12-08 06:30:00 · 30211 阅读 · 1 评论 -
Spring Boot - ApplicationRunner && CommandLineRunner扩展接口
Spring Boot - 扩展接口一览接口也只有一个方法:如果有多个,可以利用@Order来进行排序, 按照中的value值从小到大依次执行。触发时机为整个项目启动完毕后(执行时机为容器启动完成的时候),自动执行。扩展此接口,进行启动项目之后一些业务的预处理。继续 核心方法 OK, CLEARCommandLineRunner原创 2022-12-07 21:21:07 · 29951 阅读 · 0 评论 -
Spring - SmartInitializingSingleton扩展接口
Spring Boot - 扩展接口一览触发时机只有一个方法,其作用是是 在spring容器管理的所有单例对象(非懒加载对象)初始化完成之后调用的回调接口。其触发时机为之后。可以扩展此接口在对所有单例对象初始化完毕后,做一些后置的业务处理在Spring容器启动时,会调用方法;重点看 继续继续扩展示例原创 2022-12-07 06:45:00 · 29928 阅读 · 0 评论 -
Spring - FactoryBean扩展实战_MyBatis-Spring 启动过程源码解读
Spring Boot - 扩展接口一览Spring - FactoryBean扩展接口Spring-Spring整合MyBatis详解MyBatis的启动过程包含了一系列核心对象的创建,而这个过程涉及到对配置文件的读取和处理 。MyBatis 也专门提供了一个 MyBatis-Spring 组件来完成与 Spring 框架的集成。对于 MyBatis-Spring 而言,它的启动过程构建在 MyBatis 的启动过程基础之上,融合了 Spring 框架的功能特性。因此了解Spring的扩展点是非常重要的。原创 2022-12-06 22:00:00 · 30457 阅读 · 0 评论 -
Spring - FactoryBean扩展接口
Spring Boot - 扩展接口一览一般情况下,Spring通过反射机制利用bean的class属性指定支线类去实例化bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在bean中提供大量的配置信息。配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案。Spring为此提供了一个的工厂类接口,用户可以通过实现该接口定制实例化Bean的逻辑。接口对于Spring框架来说占用重要的地位,Spring自身就提供了70多个的实现。隐藏了实例化一些复杂bean的细节,原创 2022-12-06 07:00:00 · 30437 阅读 · 0 评论 -
Spring - InitializingBean扩展接口
Spring Boot - 扩展接口一览InitializingBean接口为bean提供了初始化方法的方式,只有方法。凡是实现该接口的类,在初始化bean的时候都会执行该方法。这个扩展点的触发时机在之前使用场景举例: 实现此接口来进行系统启动的时候一些业务指标的初始化工作。我们直接继续原创 2022-12-05 20:00:00 · 29979 阅读 · 1 评论 -
Spring - @PostConstruct 源码解析
Spring Boot - 扩展接口一览严格意义上来说这个并不算一个扩展点,其实就是一个标注。其作用是在bean的初始化阶段,如果对一个方法标注了@PostConstruct,会先调用这个方法。触发时机是在之后之前。带着这个疑问: 为什么@PostConstruct注解的方法会在程序启动的时候执行?源码面前,了无秘密。结合对Spring生命周期的理解, bean的创建过程,我们可以推测@PostConstruct方法将在最后生成Bean的时候被调用。我们从 开始看包含了创建一个Bean的核心逻辑,原创 2022-12-05 07:00:00 · 31238 阅读 · 0 评论 -
Spring - BeanNameAware扩展接口
bean的初始化之前,也就是postProcessBeforeInitialization之前,这个类的触发点方法只有一个:setBeanName使用场景为:用户可以扩展这个点,在初始化bean之前拿到spring容器中注册的的beanName,来自行修改这个be触发点在bean的初始化之前,也就是之前,这个类的触发点方法只有一个:使用场景为:用户可以扩展这个点,在初始化bean之前拿到spring容器中注册的的beanName,来自行修改这个beanName的值。扩展示例比较简单,随便写一个吧原创 2022-12-04 23:45:00 · 29656 阅读 · 0 评论 -
Spring - ApplicationContextAwareProcessor扩展接口
Spring Boot - 扩展接口一览 本身并没有扩展点,但是该类内部却有6个扩展点可供实现 ,这些类触发的时机在bean实例化之后,初始化之前.5.3.2版本:用于获取EnviromentAware的一个扩展类,这个变量非常有用, 可以获得系统内的所有参数。个人认为这个Aware没必要去扩展,因为spring内部都可以通过注入的方式来直接获得。:用于获取StringValueResolver的一个扩展类, StringValueResolver用于获取基于String类型的properties原创 2022-12-04 19:09:56 · 31029 阅读 · 1 评论 -
Spring - BeanFactoryAware扩展接口
Spring Boot - 扩展接口一览扩展点方法为,可以拿到这个属性。使用场景:可以在bean实例化之后,但还未初始化之前,拿到 ,在这个时候,可以对每个bean进行特殊化的定制。也或者可以把拿到进行缓存,日后使用。Spring web内建的Aware接口Spring其它内建Aware接口Spring内建Aware接口的执行时机及顺序Aware接口的执行时机肯定是在Spring Bean创建的时候。对于Aware接口的执行实现主要有一下两种模式进入到我们继续看下 可知App原创 2022-12-04 11:32:33 · 31532 阅读 · 0 评论 -
Spring - SmartInstantiationAwareBeanPostProcessor扩展接口
determineCandidateConstructors:该触发点发生在postProcessBeforeInstantiation之后,用该扩展接口有3个触发点方法举个例子加载aa,提前将singleton露出去,这个时候只没有被调用; 因为没有出现循环引用的情况,现在放入缓存是为了预防有循环引用的情况可以通过这个取对象;源码调用的地方如下继续看 紧接着 属性填充在填充属性的时候发现引用了b;然后就去获取bb来填充 , 重复刚才的动作,然后直接调用getSingleton获取扩展示例原创 2022-12-03 23:54:45 · 30099 阅读 · 0 评论 -
Spring - BeanPostProcessors 扩展接口
如果接囗的实现类被注册到ioc容器,那么该容器的每个Bean在调用初始化方法之前,都会获得该接口实现类的一个回调。要使用BeanPostProcessord回调,就必须先在容器中注册实现该接口的类,那么如何注册呢?若使用,则必须要显示的调用其方法进行注册,参数为BeanPostProcessor现类的实例;使用,那么容器会在配置文件在中自动寻找实现了 口的Bean,然后自动注册,我们只需要配置个现类的Bean可以了。多个的实现类,只要实现接口,设置order属性就可原创 2022-11-27 22:09:30 · 31071 阅读 · 0 评论 -
Spring - InstantiationAwareBeanPostProcessor 扩展接口
(1)实例化: 实例化的过程是一个创建Beang过程,即调用Bean构造函数,单例的Bean入单例池中。(2)初始化: 初始化的过程是一个赋值的过程,即调用Beansetter,设置Bean属性。接口在此基础上增加了3个方法,使得扩展接口可以扩大到实例化阶段和属性注入阶段。接口只在bean的初始化阶段进行扩展(注入spring上下文前后),而。接口 , 从方法上我们也可以看出。作用于过程(1)实例化前后;用于过程(2)初始化前后。按调用顺序,我们来看一下。原创 2022-11-27 23:45:00 · 31120 阅读 · 6 评论 -
Spring - BeanFactoryPostProcessor 扩展接口
找出所有实现了BeanDefinitionRegistryPostProcessor接口和PriorityOrdered接口的bean,放入registryProcessors集合,根据PriorityOrdered接口来排序,然后这些bean会被。在实例化之前,spring允许我们通过自定义扩展来改变bean的定义,定义一旦变了,后面的实例也就变了,而beanFactory后置处理器BeanFactoryPostProcessor就是用来改变bean定义的。接口的bean,都被作为入参,然后调用了。原创 2022-11-27 17:02:36 · 35190 阅读 · 1 评论 -
Spring - BeanDefinitionRegistryPostProcessor 扩展接口 动态注册bean
BeanDefinitionRegistryPostProcessork可以在加载到项目中的beanDefinition之后执行,提供一个补充的扩展点。举个例子: 动态注册自己的beanDefinition,加载classpath之外的bean原创 2022-11-27 10:50:38 · 31135 阅读 · 0 评论 -
Spring - ApplicationContextInitializer 扩展接口
该接口是整个spring容器在刷新之前初始化ConfigurableApplicationContext的回调接口,即在容器刷新之前会调用该类的initialize方法。实现这个接口可以在整个spring容器还没被初始化之前搞事情。在spring.factories中加入。原创 2022-11-27 08:15:00 · 30887 阅读 · 1 评论