springboot
文章平均质量分 83
LamaxiyaFc
天地分上下,日月照古今
展开
-
Spring源码学习:BeanPostProcessor注册和执行时机
目录前言1 BeanPostProcessors作用2 源码分析2.1 BeanPostProcessors注册时机2.1.1 注册beanPostProcessorChecker2.1.2 各种优先级BeanPostProcessor进行排序注册2.1.3 重新注册ApplicationListenerDetector2.2 BeanPostProcessors执行时机3 扩展示例总结前言后置处理器是Spring框架提供的对外扩展点,通过实现对应接口,可以对bean进行各种操作(bean定义bd进行修原创 2022-04-05 16:39:49 · 1867 阅读 · 1 评论 -
Spring源码学习:@SpringBootApplication注解和自动装配原理学习
目录前言1 @SpringBootApplication注解分析1.1 @SpringBootConfiguration1.2 @EnableAutoConfiguration1.2.1 @AutoConfigurationPackage1.2.2 @Import(AutoConfigurationImportSelector.class)1.3 @ComponentScan2 源码解析3 处理流程图4 测试前言我们在启动类使用该注解可以自动完成springboot项目的自动处理注解,自动导入各种依赖包原创 2022-04-04 17:00:30 · 359 阅读 · 0 评论 -
Spring源码学习:spring使用@Bean方法注入对象时,beanName相同出现随机注入的问题
目录前言1 现象2 源码探究3 测试3.1 实现接口情况3.2 去掉实现类或者删除接口中@Bean方法总结前言当我们在配置类中通过@Bean方法注入对象时,如果设置相同的beanName,会出现注入对象不一致的问题。1 现象前提:设置配置类Config,实现接口MyInterface(接口中必须有一个@Bean方法),同时配置类中设置两个@Bean方法,这两个@Bean名字设置为相同如下图:设置主类如下:public static void main(String[] args) { An原创 2022-04-01 17:22:21 · 1716 阅读 · 0 评论 -
Spring源码学习:内置bean工厂后置处理器ConfigurationClassPostProcessor源码学习
目录前言1 主要处理流程图2 源码学习2.1 ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry方法2.2 ConfigurationClassPostProcessor.processConfigBeanDefinitions2.2.1检查是否是配置类2.2.2 循环解析配置类并注册到缓存bdMap中2.3 ConfigurationClassParser.parse方法2.4 ConfigurationClassParser原创 2022-03-31 11:10:50 · 659 阅读 · 0 评论 -
Spring源码学习:ApplicationContextAwareProcessor和ignoredDependencyInterfaces学习
这里写目录标题前言1 ApplicationContextAwareProcessor1.1 注册时机1.2 调用时机1.3 执行逻辑2 ignoredDependencyInterfaces2.1 作用2.2 添加时机2.3 判断时机前言ApplicationContextAwareProcessor处理器继承自BeanPostProcessor,主要是对spring中实现自Aware接口的EnvironmentAware、ApplicationContextAware等进行后置处理,ignoredD原创 2022-03-25 18:20:24 · 801 阅读 · 0 评论 -
Spring源码学习:BeanFactoryPostProcessor学习
BeanFactoryPostProcessor1 简介该接口主要作用在spring读取或扫描bean定义后,bean实例化之前对beanDefinition进行一些操作,比如更改bean的类型(单例或者原型)2 源码学习2.1 自定义一个BeanFactoryPostProcessor@Componentpublic class MyBeanFatoryPostProcessor implements BeanFactoryPostProcessor { //实现接口中唯一方法 @O原创 2022-03-23 22:12:59 · 134 阅读 · 0 评论 -
spring源码学习:ApplicationListener监听器添加到disposableBeans过程
disposableBeans缓存作用主要是在后续bean销毁时执行销毁前的一些指定操作对于自定义的ApplicationListener主要是执行ApplicationListenerDetector的一些方法源码解析进入到AnnotationConfigApplicationContext的refreshpublic void refresh() throws BeansException, IllegalStateException { synchronized(this.st原创 2022-03-22 16:28:48 · 578 阅读 · 0 评论 -
springboot监听器
Springboot 监听器主要是通过观察者模式对一个事件发布之后进行处理,对应spring中为ApplicationListener对监听的ApplicationEvent进行处理源码解析注册监听器进入AnnotationConfigApplicationContext代码片构造函数public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this(); this原创 2022-03-21 11:26:24 · 177 阅读 · 0 评论