
Spring源码
文章平均质量分 95
从头再来_f
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring源码学习(十五)-- 事务底层源码解析
今天我们主要来学习一下Spring事务的源码解析,主要讲的是Spring的申明式事务的讲解。申明式事务管理: 基于Spring AOP实现。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。申明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,且大部分业务都可以满足,推荐使用。源码解析入口@EnableTransactionManagement工作原理使用EnableTransactionMana原创 2022-02-12 15:00:35 · 1432 阅读 · 1 评论 -
Spring源码学习(十四)-- AOP底层源码解析下
ProxyFactory选择cglib或jdk动态代理原理OrderService target = new OrderService(); ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.setTarget(target); proxyFactory.setInterfaces(OrderInterface.class); proxyFactory.addAdvice(new MethodIntercepto原创 2022-02-09 11:00:54 · 899 阅读 · 0 评论 -
Spring源码学习(十三)-- AOP底层源码解析上
首先可以看一下之前关于代理的笔记:代理模式学习笔记_学习笔记-优快云博客动态代理代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。比如,现在存在一个UserService类:package com.fztx.service;public class UserService { public void test(){ System.out.println("test..."); }}此时,我们new一个UserSe原创 2022-01-24 16:18:36 · 682 阅读 · 1 评论 -
Spring源码学习(十二)--配置类解析(ConfigurationClassPostProcessor)
前言上一篇文章分析Spring启动流程中有一个步骤是执行BeanFactoryPostProcessor,在refresh-->invokeBeanFactoryPostProcessors(beanFactory),该方法中会先执行BeanDefinitionRegistryPostProcessor的postProcessBeanDefinitionRegistry方法,然后执行postProcessBeanFactory方法,其中ConfigurationClassPostProcessor原创 2021-11-26 18:24:17 · 1191 阅读 · 1 评论 -
Spring源码学习(十)--推断构造方法
Spring推断构造方法原创 2021-11-23 17:31:51 · 1705 阅读 · 6 评论 -
Spring源码学习(九)--循环依赖
什么是循环依赖?很简单,就是A对象依赖了B对象,B对象依赖了A对象。比如:// A依赖了Bclass A{ public B b;}// B依赖了Aclass B{ public A a;}那么循环依赖是个问题吗?如果不考虑Spring,循环依赖并不是问题,因为对象之间相互依赖是很正常的事情。比如A a = new A();B b = new B();a.b = b;b.a = a;这样,A,B就依赖上了。但是,在Spring中循.原创 2021-11-12 18:02:24 · 1652 阅读 · 1 评论 -
Spring源码学习(八)-- 依赖注入源码解析(下)
上篇文章分析了Spring中的自动注入(byName,byType)和@Autowired注解的工作原理以及源码,@Autowired注解依赖注入其中注入点注入,无论是属性注入还是方法注入都有一个相同的方法org.springframework.beans.factory.support.DefaultListableBeanFactory#resolveDependency@NullableObject resolveDependency(DependencyDescriptor desc..原创 2021-11-09 18:39:44 · 1521 阅读 · 0 评论 -
Spring源码学习(七)-- 依赖注入源码解析(上)
Spring中到底有几种依赖注入的方式?首先分两种:手动注入 自动注入手动注入在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。<bean name="userService" class="com.fztx.service.UserService"> <property name="orderService" ref="orderService"/></bean>上面这种底层是通过set方法进行注入。<原创 2021-11-03 16:33:09 · 790 阅读 · 0 评论 -
Spring源码学习(六)-- Bean的生命周期(下)
前言接上篇Spring源码学习(五)-- Bean的生命周期(上)Spring Bean总体的创建过程如下:在上一篇文章把spring扫描(生成beanDefinition)、合并BeanDefinition,那么接下就是根据BeanDefinition创建spring bean的过程了。上篇文章分析到refresh()方法中finishBeanFactoryInitialization的方法会实例化非懒加载单例bean,继续走到org.springframework.beans..原创 2021-11-02 15:50:52 · 562 阅读 · 0 评论 -
Spring源码学习(五)-- Bean的生命周期(上)
Spring最重要的功能就是帮助程序员创建对象(也就是IOC),而启动Spring就是为创建Bean对象做准备,所以我们先明白Spring到底是怎么去创建Bean的,也就是先弄明白Bean的生命周期。Bean的生命周期就是指:在Spring中,一个Bean是如何生成的,如何销毁的Bean生命周期流程图:引言首先你要明白一点,Spring Bean总体的创建过程如下:以注解类变成Spring Bean为例,Spring会扫描指定包下面的Java类,然后将其变成beanDefinit原创 2021-10-29 11:22:39 · 912 阅读 · 6 评论 -
Spring源码学习(十一)--启动流程
前言通常,我们说的Spring启动,就是构造ApplicationContext对象以及调用refresh()方法的过程。之前已经在本地编译好了spring源码,也新建了一个子模块用来测试,可以断点一步一步的跟代码。Spring IoC容器的加载过程1.实例化化容器:AnnotationConfigApplicationContext从这里出发:(这里使用的时javaconfig注解的方式,因为设计理念更先进,在对bean定义读取和操作方面使用了BeanDefinitionRegist原创 2021-11-25 17:34:38 · 1167 阅读 · 1 评论 -
Spring源码学习(四)--Spring源码编译(IDEA)
准备工作本示例基于 SpringV5.2.18RELEASE+GradleWapper+jdk1.8.0_101编译环境准备gradle gradle我没有自己单独安装,使用的是GradleWapper中的gradle,当然也可以自己下载idea 2020.1.3idea破解:IDEA2020破解永久使用[激活到2089年,稳呀] - 异常教程jdk8+源码下载进入GitHub - spring-projects/spring-framewor...原创 2021-10-21 17:33:56 · 1063 阅读 · 0 评论 -
Spring源码学习(三)-- 底层架构核心概念解析
前面,我们大概了解了Spring中的一些概念和底层工作流程,这篇是后续看Spring源码所必备的,防止后续看源码的过程中,遇到不会的概念得单独跳出来学习。BeanDefinitionBeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如:class,表示Bean类型 scope,表示Bean作用域,单例或原型等 lazyInit:表示Bean是否是懒加载 initMethodName:表示Bean初始化时要执行的方法 d原创 2021-09-08 16:29:24 · 1107 阅读 · 0 评论 -
Spring源码学习(二)--手写模拟spring底层原理
通过手写模拟,了解Spring的底层源码启动过程 通过手写模拟,了解BeanDefinition、BeanPostProcessor的概念通过手写模拟,了解Spring解析配置类等底层源码工作流程 通过手写模拟,了解依赖注入,Aware回调等底层源码工作流程通过手写模拟,了解Spring AOP的底层源码工作流程...原创 2021-09-07 23:26:15 · 894 阅读 · 4 评论 -
Spring源码学习(一)--Spring底层核心原理解析
目录Spring中是如何创建一个对象?Bean的创建过程推断构造方法AOP大致流程Spring事务最近在跟视频学习spring源码,将每节课记录下来,以后好来复习。首先把Spring中核心知识点都给大家进行串讲,对Spring的底层有了一个整体的大致了解,比如:Bean的生命周期底层原理 依赖注入底层原理 初始化底层原理 推断构造方法底层原理 AOP底层原理 Spring事务底层原理但都只是大致流程,后续会针对每个流程详细深入的讲解并分析源码实现。先来看看入门原创 2021-09-07 10:03:19 · 5771 阅读 · 3 评论