Spring5.x源码深度分析
文章平均质量分 87
Spring5.x源码深度分析
hakusai22
感谢关注,csdn已经不上线了,不会在更新了。 csdn都是个人在大二到大四期间学习的笔记,有些内容可能并不是正确的,请理解下,如果想咨询up的话技术/生活/未来规划,wx: hakusai22.
展开
-
Spring源码学习(二十三)---@Transactional注解—分析事务创建过程
这里主要是使用org.springframework:spring-beans:5.0.2.RELEASE进行分析文章目录一. createTransactionIfNecessary()事务的创建入口二. createTransactionIfNecessary()方法分析三. 获取TransactionStatus对象四. doGetTransaction() 使用Spring自带的事物管理器DataSourceTransactionManager五. 创建TransactionInfo对象.原创 2021-04-28 15:25:48 · 311 阅读 · 0 评论 -
Spring源码学习(二十二)---@Transactional注解—分析事务管理过程
这里主要是使用org.springframework:spring-beans:5.0.2.RELEASE进行分析文章目录一. 先分析JDK动态代理的invoke() 方法调用拦截器链二. 执行拦截器链调用 proceed()三. TransactionInterceptor实现事物管理过程1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 =.原创 2021-04-28 14:38:25 · 174 阅读 · 1 评论 -
Spring源码学习(二十一)---@Transactional注解—属性提取过程
这里主要是使用org.springframework:spring-beans:5.0.2.RELEASE进行分析文章目录一. @Transactional注解属性二. postProcessAfterInitialization() 初始化后的后期处理三. 解析注解属性执行过程1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl .原创 2021-04-28 14:16:39 · 299 阅读 · 0 评论 -
Spring源码学习(二十)---<tx:annotation-driven/>支持事务注解的(@Transactional)标签解析过程
这里主要是使用org.springframework:spring-beans:5.0.2.RELEASE进行分析文章目录一. XML配置文件开启tx注解二. TxNamespaceHandler类1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7查看类的有.原创 2021-04-28 13:14:30 · 588 阅读 · 0 评论 -
Spring源码学习(十九)---SpringAop_JDK和CGLIB动态代理调用过程
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. Spring AOP JDK动态代理调用过程分析1. JDK动态代理:二. Spring AOP CGLIB动态代理调用过程分析2、CGLib动态代理三. JDK动态代理和CGLib动态代理两者对比:1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl.原创 2021-02-16 19:19:07 · 278 阅读 · 1 评论 -
Spring源码学习(十八)---基于注解配置Aop的aspectj-autoproxy解析
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录①. aspectj-autoproxy标签1. proxy-target-class属性2. expose-proxy属性②. aspectj-autoproxy标签解析③. DefaultBeanDefinitionDocumentReader类的parseBeanDefinitions方法④. 通过parseCustomElement解析自定义标⑤. Namespacehand.原创 2021-02-16 19:18:29 · 1027 阅读 · 1 评论 -
Spring源码学习(十七)--基于注解@Aspect配置方式进行Aop测试
基于注解@Aspect配置方式进行Aop测试一. 被代理的目标对象接口二. 接口的实现类三. 使用注解实现AOP(正则表达式)四. XML配置文件进行注解配置处理五. 测试结果一. 被代理的目标对象接口目标对象接口package com.xizi.service;public interface UserService { public void add(String name, int age); public void update(String name, int a原创 2021-02-13 21:34:01 · 180 阅读 · 0 评论 -
Spring源码学习(十三)---静态代理模式和JDK、CGLIB动态代理
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. 静态代理二. JDK动态代理三. JDK动态代理原理分析四.CGLIB动态代理1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7查.原创 2021-02-04 11:17:16 · 233 阅读 · 0 评论 -
Spring源码学习(十六)--基于xml配置方式进行Aop测试
自定义切面使用XML配置文件进行Aop测试一.普通切面1. 目标对象2. 切面类3. 配置文件4. 测试类及结果一.普通切面1. 目标对象package com.xizi.service;public interface UserService { public void add(String name, int age); public void update(String name, int age);}package com.xizi.service;publi原创 2021-02-06 11:49:41 · 176 阅读 · 0 评论 -
Spring源码学习(十五)---静态普通方法名匹配切面
静态普通方法名匹配切面一.Aop的切面介绍二. 静态普通方法名匹配切面小案例1. 接口和实现类(目标对象)2. MyMethodBeforeAdvice 前置增强3. 自定义静态普通方法名匹配切面 MyStaticPointcutAdvisor4. 进行Aop切面+增强的测试一.Aop的切面介绍增强包括横切代码,又包含部分连接点信息(方法前、方法后主方位信息),所以可以仅通过增强类生成一个切面。 但切点仅仅代表目标类连接点的部分信息(类和方法的定位),所以仅有切点无法制作出一个切面,必须结合增强才能制原创 2021-02-06 11:15:38 · 1587 阅读 · 0 评论 -
Spring源码学习(十四)---Aop知识点总结和Advice接口的增强测试(含代码)
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. Aop知识点总结二. Advice接口的增强测试--使用配置文件三. Advice接口的增强测试--使用代理对象1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl .原创 2021-02-05 11:07:29 · 243 阅读 · 0 评论 -
Spring源码学习(十二)---BeanFactory和相关接口分析
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. BeanFactory简介①. ListableBeanFactory继承BeanFactory②. HierarchicalBeanFactory继承BeanFactory接口③. AutowireCapableBeanFactor继承BeanFactory④. ConfigurableBeanFactory继承HierarchicalBeanFactory⑤. Config.原创 2021-02-04 09:50:57 · 249 阅读 · 0 评论 -
Spring源码学习目录--2020~2021年
Spring源码学习目录Spring源码学习(一)—两种容器使用Spring源码学习(二)—容器的核心类Spring源码学习(三)—XmlBeanFactorySpring源码学习(四)—DocumentSpring源码学习(五)—BeanDefinitionsSpring源码学习(六)—Bean标签的解析及注册Spring源码学习(七)—AbstractBeanDefinitionSpring源码学习(八)—注册BeanDefinition...原创 2020-12-15 17:25:45 · 458 阅读 · 0 评论 -
Spring源码学习(十一)---Bean的作用域和生命周期进行测试
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7查看类的有什么方法ctrl+f12查看继承方法ctrl+h查看接口的实.原创 2021-02-04 09:09:52 · 219 阅读 · 0 评论 -
Spring源码学习(十)---FactoryBean的解析
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析FactoryBean解析一.FactoryBean接口1. FactoryBean的使用方式1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7.原创 2020-12-21 15:40:13 · 164 阅读 · 0 评论 -
Spring源码学习(九)--Bean的加载和实例化Bean的方法
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录1. 查看源码相关的快捷键原创 2020-12-21 15:00:03 · 483 阅读 · 0 评论 -
Spring源码学习(八)---注册BeanDefinition
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7查看类的有什么方法ctrl+f12查看继承方法ctrl+h查看接口的实.原创 2020-12-15 17:12:02 · 742 阅读 · 0 评论 -
Spring源码学习(七)---AbstractBeanDefinition
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. AbstractBeanDefinition1. 查看源码相关的快捷键快捷键作用Ctrl + Shift+i出现类似于预览的小窗口Ctrl + Enter(接上步)完全打开源码Ctrl + 鼠标左键一步到位打开源码 = Ctrl + Shift+i –>Ctrl + EnterAlt+7查看类的有什么方法ctrl+f.原创 2020-12-15 16:17:49 · 305 阅读 · 0 评论 -
Spring源码学习(六)---Bean标签的解析及注册
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一 . 默认标签的解析 parseDefaultElement()一 . 默认标签的解析 parseDefaultElement() private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { // 对import标签的处理 if (delegate.nodeN.原创 2020-12-14 22:19:33 · 802 阅读 · 0 评论 -
Spring源码学习(五)---BeanDefinitions解析流程
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. XmlBeanDefinitionReader二.DefaultBeanDefinitionDocumentReader1. doRegisterBeanDefinitions();三 . profile属性的使用四. 解析并注册BeanDefinition一. XmlBeanDefinitionReader在上一章Document文件配置读取后,需要注册Bean,当拥.原创 2020-12-08 17:42:00 · 311 阅读 · 0 评论 -
Spring源码学习(四)---XML文件解析为Document对象
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析文章目录一. DefaultDocumentLoader二. EntityResolver三. 加载DTD文件一. DefaultDocumentLoaderXmlBeanFactoryReader类把文档读取委托给DocumentLoader执行DefaultDocumentLoader是DocumentLoader的实现类 loadDocument() 重写接口的方.原创 2020-12-08 16:42:30 · 317 阅读 · 0 评论 -
Spring源码学习(三)---XmlBeanFactory执行流程
文章目录1. 加载配置代码2. 配置文件封装1. 加载配置代码 BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beans.xml")); Hello hello = (Hello) beanFactory.getBean("hello");XmlBeanFactory初始化的执行流程调用了ClassPathResource的构造函数来构造Resource资源文件的实例..原创 2020-12-01 22:46:58 · 213 阅读 · 0 评论 -
Spring源码学习(二)---容器的核心类--DefaultListableBeanFactory和XmlBeanDefinitionReader
这里主要是使用org.springframework:spring-beans:5.2.0.RELEASE进行分析一. DefaultListableBeanFactoryXmlBeanFactory继承DefaultListableBeanFactory,DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,而XmlBeanFactory中使用自定义的XML读取器XmlBeanDefinitionReader,实现了BeanDe原创 2020-12-01 21:21:01 · 207 阅读 · 0 评论 -
Spring源码学习(一)---两种容器使用—ApplicationContext和BeanFactory容器
文章目录1. ApplicationContext容器2. BeanFactory 容器Bean是Spring中最重要的部分之一,我们定义一个POJO让它成为Beanpackage com.xizi.pojo;public class Hello { private String name; public String getName() { return name; } public void setName(String nam原创 2020-12-01 20:33:10 · 258 阅读 · 0 评论