spring源码
文章平均质量分 73
外外外
这个作者很懒,什么都没留下…
展开
-
spring源码学习总结9-IOC-循环依赖问题解决
这篇首先会介绍下解决循环依赖问题的三个类,然后再以一个例子来解释spring是怎么解决循环依赖的一、DefaultSingletonBeanRegistry介绍:spring解决循环依赖的核心类,用来存放三级缓存变量 : /** Cache of singleton factories: bean name --> ObjectFactory */ private final Map<String, ObjectFactory<?>> singletonFactori原创 2021-04-20 19:00:40 · 283 阅读 · 0 评论 -
spring源码学习总结8-IOC-IOC容器中初始化bean
一、源码入囗入囗:AbstractApplicationContext抽象类的refresh()方法中的finishBeanFactoryInitialization(beanFactory)方法这次先总结下代码流程本节讲解顺序,为从里往外1.先讲解下最核心的方法:AbstractAutowireCapableBeanFactory#doCreateBean方法2.然后其外层方法:AbstractBeanFactory#getBean(java.lang.String)方法3.最后讲解原创 2021-04-20 17:41:33 · 236 阅读 · 0 评论 -
Spring AOP源码学习-----JAVA动态代理与Spring AOP动态代理的关系
此处以JDK动态代理为例JAVA动态代理有两大核心类,它们都在Java的反射包下(java.lang.reflect):InvocationHandler每一个代理实例都要有一个关联的InvocationHandler方法:Object invoke(Object proxy, Method method, Object[] args)作用:用于方法调用的约束与增强Proxy作用:创建动态代理类及其实例方法:1.构造函数(设置代理实例的调用处理器)Proxy(InvocationHan原创 2021-03-16 10:26:33 · 145 阅读 · 0 评论 -
spring源码学习总结7-IOC-IOC容器中建立BeanDefinition数据映射
一、IoC容器中建立BeanDefinition数据映射主要有三步:1.BeanDefinition的Resource定位2.BeanDefinition的载入3.注册BeanDefinition下面逐步分析二、BeanDefinition的Resource定位过程由ResourceLoader通过统一的Resource接口完成三种常规定位方式:1.主类所在包,@Component和@ComponentScan定位资源@Component标明哪个类被扫描进入Spring IoC容器@C原创 2021-04-16 18:38:32 · 239 阅读 · 0 评论 -
spring源码学习总结6-IOC-ApplicationContext的设计路线
一、ApplicationContext的设计路线上下文对容器不仅是扩展关系,更重要是持有关系,上下文是以属性形式持有了容器一、ApplicationContext接口上下文的顶级容器public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, Resou原创 2021-04-15 18:12:36 · 153 阅读 · 0 评论 -
spring源码学习总结5-IOC-BeanFactory的设计路线
一、BeanFactory的设计路线这里列出了xxxxBeanFactory:Bean工厂中的所有核心类下面对这些类做单个介绍二、BeanDefinitionRegistry接口:作用:BeanDefinition的注册中心核心方法:registerBeanDefinition(String beanName, BeanDefinition beanDefinition):注册BeanDefinition三、SingletonBeanRegistry接口作用:Bean注册中心核心方法原创 2021-04-14 10:49:44 · 101 阅读 · 0 评论 -
spring源码学习总结4-IOC-理解IOC
一、IoC容器基础内容Spring IoC容器一个管理Bean的容器两个基本功能:通过描述管理Bean,包括发布和获取Bean通过描述完成Bean间的依赖关系二、理解IOC,控制反转究竟是什么意思举个例子:我是一个学生,我想要学英语,我需要一个老师来对我辅导。实现如下:public class Student { @Autowired private Teacher teacher; public void leanEnglish(Teacher t原创 2021-04-14 10:24:15 · 83 阅读 · 0 评论 -
spring源码学习总结3-IOC-IOC常见扩展类
只列举最常用的一、InitializingBean方法:afterPropertiesSet()作用:初始化Bean时(bean实例已经生成),修改Bean属性(需要类实现此接囗)二、BeanPostProcessor方法:postProcessBeforeInitialization(Object bean, String beanName)postProcessAfterInitialization(Object bean, String beanName)作用:1.处理Bean对原创 2021-04-13 13:45:15 · 118 阅读 · 0 评论 -
spring源码学习总结2-IOC-Bean基础内容
一、Bean基础内容(4部分)1.Bean定义BeanDefinition:表示Bean,描述Bean的配置信息BeanDefinitionRegistry接囗(注册BeanDefinition,看名字就知道它的作用了),定义对BeanDefinition的各种增删改操作最重要的方法是注册BeanDefinition:registerBeanDefinition(String beanName, BeanDefinition beanDefinition)实现类:SimpleBeanDefin原创 2021-04-13 11:17:00 · 65 阅读 · 0 评论 -
spring源码学习总结1-IOC
学习spring源码的过程,就是开始,放弃,再开始,再放弃,再开始。。。的过程最近准备把学习到的spring内容整理下,先从IOC开始,来张思维导图,暂时学习到的IOC内容就是下面这些,后续会根据这张图来整理下之前的学习笔记,然后发出来。...原创 2021-04-12 14:05:27 · 96 阅读 · 0 评论