![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring源码
文章平均质量分 95
蓝天白水
这个作者很懒,什么都没留下…
展开
-
spring--12--基于注解的事件监听原理
spring–基于注解的事件监听原理文章目录spring--基于注解的事件监听原理1 `EventListenerMethodProcessor`(处理`@EventListener`注解)2 `postProcessBeanFactory()`方法(`BeanFactoryPostProcessor`接口的唯一方法)3 `afterSingletonsInstantiated()`方法(`SmartInitializingSingleton`接口的唯一方法)3.1 判断是否使用了作用域代理模式3.2 获原创 2021-02-02 17:54:19 · 340 阅读 · 0 评论 -
spring--11--基于XML的事件监听原理
spring–事件监听机制文章目录spring--事件监听机制1 概念2 `spring`提供的标准事件2.1 自定义事件2.2 发布事件3 事件多播器`ApplicationEventMulticaster`3.1 `spring`启动过程中自动创建事件多播器3.2 默认的事件多播器`SimpleApplicationEventMulticaster`4 监听器监听事件4.1 `spring`自动识别监听器4.2 自定义监听器监听自定义事件5 使用应用事件发布器`ApplicationEventPubl原创 2021-01-31 16:47:05 · 493 阅读 · 0 评论 -
spring--10--类型转换Converter
spring–7--类型转换Converter文章目录spring--7--类型转换`Converter`1 用法1.1 `Converter`接口,`1:1`转换1.2 `ConverterFactory`接口,`1:N`转换1.3 `GenericConverter`接口,`N:N`转换2 `ConversionService`统一转换服务2.1 `spring`默认的`ConversionService`(`DefaultConversionService`)2.1.1 `Converters`经原创 2021-01-18 18:05:37 · 295 阅读 · 0 评论 -
spring--9--类型转换PropertyEditor
spring–6--类型转换PropertyEditor和Converter文章目录spring--6--类型转换`PropertyEditor`和`Converter`1`PropertyEditor`1.1 一个小例子1.2 原理1.2.1 `MutablePropertyValues`的结构1.2.2 `BeanWrapperImpl`的作用1.2.3 将`MutablePropertyValues`中的值填充到实例中1.2.3.1 使用`BeanDefinitionValueResolver`进行原创 2021-01-14 16:41:31 · 206 阅读 · 1 评论 -
spring--8--BeanWrapper
spring–BeanWrapper文章目录spring--`BeanWrapper`1 用途2 `BeanWrapperImpl`的继承体系3 `spring`实例化`bean`后创建`BeanWrapper`对象3.1 使用实例化后的对象构建一个`BeanWrapper`3.2 初始化`BeanWrapper`4 `AbstractNestablePropertyAccessor`4.1 `PropertyHandler`4.2 `PropertyTokenHolder`5 `PropertyDesc原创 2021-02-23 17:53:15 · 575 阅读 · 0 评论 -
spring--7--属性填充之类型转换
spring–属性填充之类型转换文章目录spring--属性填充之类型转换1 类型转换2 属性填充3 `MutablePropertyValues`3.1 `MutablePropertyValues`的继承体系3.2 `PropertyValue`的继承体系3.2.1 构造方法3.2.2 `setConvertedValue(@Nullable Object value)`方法,保存已经类型转换成功的值到`PropertyValue`中3.2.3 `getOriginalPropertyValue()`原创 2021-02-23 17:52:01 · 314 阅读 · 0 评论 -
spring--6--spring之ConfigurationClassPostProcessor源码
spring之ConfigurationClassPostProcessor源码解析1 用途解析@Configuration注解我们先来看一下这个类的类图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbAGGsQm-1608794341857)(image\Snipaste_2020-12-22_15-57-15.png)]很明显,这个类是一个BeanFactoryPostProcessor(BeanFactory增强器),它会在容器中其它bean(普通bean,原创 2020-12-24 15:19:21 · 233 阅读 · 0 评论 -
spring--5--spring之CommonAnnotationBeanPostProcessor源码
spring之CommonAnnotationBeanPostProcessor源码1 作用首先来说一下这个BeanPostProcessor的作用(1)处理@Resource注解,实现ByName的自动注入功能。(2)处理@PostConstruct和@PreDestroy注解,指定初始化方法和销毁方法,使用注解的方法相比于实现接口可以降低spring的耦合。接下来我们看一下这个BeanPostProcessor的类图,从类图上我们就能知道上述功能的处理方法是哪个[外链图片转存失败,源站可能有原创 2020-12-20 17:28:11 · 447 阅读 · 0 评论 -
spring--4--spring之AutowiredAnnotationBeanPostProcessor源码
spring中注解方式的自动注入1 项目xml配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/c原创 2020-12-22 15:44:41 · 414 阅读 · 1 评论 -
spring--3--spring中的非注解方式自动注入
spring中非注解方式的自动注入首先,我们先来说一种xml配置文件配置的自动注入。这是一种过时的技术,现在基本上没人用了。我以一个例子来说明一下这个技术1 项目xml配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance原创 2020-12-14 17:20:10 · 1091 阅读 · 2 评论 -
spring--2--bean的生命周期
spring–2--bean的生命周期文章目录spring--2--`bean`的生命周期1 什么是`bean`的生命周期?2 预实例化`bean`3 `getBean(beanName)`实例化`bean`3.1 `getSingleton(beanName)`方法(获取容器中`beanName`对应的已经实例化的`bean`对象)3.2 `getObjectForBeanInstance`方法(根据用户需要来获取相应的`bean`对象)3.3 `markBeanAsCreated`方法(标记`bea原创 2021-01-29 18:20:29 · 113 阅读 · 0 评论 -
spring--1--探究spring的启动流程
探究spring IOC源码1 一个简单的spring程序//声明一个可以读取xml配置文件的容器ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext();//设置配置文件classPathXmlApplicationContext.setConfigLocation("spring-context.xml");//刷新容器,这是spring中最原创 2020-12-08 17:57:35 · 218 阅读 · 0 评论