Spring 源码
文章平均质量分 91
Spring框架为现代基于java的企业应用程序提供了全面的编程和配置模型——在任何类型的部署平台上都可以使用。
swadian2008
不积跬步,无以至千里;不积小流,无以成江海
展开
-
Spring AOP 和 Spring 1.2 中AOP的配置
目录一、AOP, AspectJ, Spring AOP 前世今生1、AOP2、AspectJ3、Spring AOP二、Spring 1.2 中的配置1、FactoryBean方式,创建动态代理2、Advisor,实现更细粒度的方法增强3、autoproxy 自动代理一、AOP, AspectJ, Spring AOP 前世今生1、AOPAOP 是在我们原来写的代码的基础上,进行一定的包装,如在方法执行前、方法返回后、方法抛出异常后等地方进行一定的拦截处理或者叫原创 2022-05-10 22:48:26 · 279 阅读 · 0 评论 -
Spring事件监听机制@EventListener源码解析
目录1、前期准备2、创建和注册事件监听器(1)EventListenerMethodProcessor.class(2)SmartInitializingSingleton -> Spring的回调3、发布事件1、前期准备Spring容器在启动的时候初始化EventListenerMethodProcessor和 DefaultEventListenerFactory,当Spring Bean 创建完成后,会调用EventListenerMethodProcessor的原创 2022-05-07 17:26:59 · 882 阅读 · 2 评论 -
Spring 监听机制实现和源码剖析
目录1、使用Spring 事件(1)事件(2)事件监听器(3)事件发布操作(4)监听器使用的相关问题2、Spring事件原理3、源码流程(1)前期准备(2)事件多播器的初始化(3)注册事件监听器,发布早期事件(4)发布Spring内置事件1、使用Spring 事件Spring事件体系包括三个组件:事件,事件监听器,事件广播器。(1)事件Spring内置事件内置事件中由系统内部进行发布,只需注入监听器 Event原创 2022-05-07 17:28:22 · 589 阅读 · 0 评论 -
循环依赖-Spring源码分析
目录一、Spring手写循环依赖1、循环依赖问题的出现2、循环依赖问题的解决 -> 一级缓存3、循环依赖问题的解决 -> 二级缓存4、循环依赖问题的解决(动态代理) -> 三级缓存二、Spring循环依赖源码分析三、Spring 有没有解决构造函数的循环依赖和多实例的循环依赖?一、Spring手写循环依赖1、循环依赖问题的出现代码示例,A实例中有B@Componentpublic class InstanceA { @Autowired原创 2022-05-11 14:47:18 · 374 阅读 · 0 评论 -
Spring内置后置PostProcess处理器深度剖析
目录1、后置PostProcess的调用2、ConfigurationClassPostProcessor后置处理器解析3、@Configuration注解加与不加的区别4、重复beanName的覆盖原则1、后置PostProcess的调用后置处理器在 new AnnotatedBeanDefinitionReader() 时加载,在 register(componentClasses) 中注册,在 refresh() 方法中被调用public AnnotationConfig原创 2022-05-05 10:18:13 · 1102 阅读 · 0 评论 -
IoC容器加载过程和Bean的生命周期源码深度剖析
目录1、this(); //获取组件(1)DefaultListableBeanFactory(2)BeanDefinitionReader(3)BeanDefinitionScanner->扫描器,包扫描2、register(componentClasses)—>注册BeanDefinition3、refresh() 方法(1)finishBeanFactoryInitialization—>生产Bean(2)BeanFactory 和 FactoryBe原创 2022-04-29 12:25:12 · 486 阅读 · 0 评论 -
如何编译 Spring 源码?
目录1、源码下载2、构建工具准备3、编译compileTestJava模块4、导入项目到IDEA中5、添加 gradle 模块本示例基于 spring-framework-5.2.7.RELEASE + GradleWapper + jdk1.8.0_131编译1、源码下载从官网下载源码:Spring Framework选择具体的稳定版本(RELEASE)即可2、构建工具准备安装源码对应的 gradle 版本(也可不安装),建议使用 gradleWrape原创 2022-04-28 11:28:39 · 4039 阅读 · 0 评论 -
Spring IOC 加载过程
目录1.什么是BeanFactory?2.BeanFactory和ApplicationContext的区别?3.简述SpringIOC的加载过程4.Spring中有哪些扩展接口及调用时机?5.简述Bean的生命周期1.什么是BeanFactory?BeanFactory是用于访问Spring Bean容器(IOC容器)的顶层核心接口,典型的工厂模式,用于生产Bean的一个Bean工厂,其提供了生产Bean所需的最基本规则。2.BeanFactory和Applicatio原创 2022-04-21 18:52:54 · 1369 阅读 · 0 评论