E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Spring源码学习
01-核心实现-Core Container-
Spring源码学习
spring整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块spring整体架构(1)CoreContainer(核心容器)包含的模块就和图上的一样,就不重复写了。(这张图多看几遍,越看越经典,哈哈)Beans和Core是架构的基础部分,提供IoC和依赖注入属性。这个基础部分概念指的是BeanFactory,它提供对Factory的模式的经典实现来消除对程序性
大碗茶
·
2023-03-18 12:26
Spring源码学习
(十五)-- 事务底层源码解析
今天我们主要来学习一下Spring事务的源码解析,主要讲的是Spring的申明式事务的讲解。申明式事务管理:基于SpringAOP实现。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。申明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,且大部分业务都可以满足,推荐使用。源码解析入口@Enable
从头再来_f
·
2023-02-20 07:32
Spring源码
spring
java
后端
Spring源码学习
之前在源码阅读网上看了Spring源码,但是对于我来说即使有流程图例,即使也看过Spring揭秘的学习,但是源码对于我来说还是云里雾里,我在github上找到了small-spring项目,个人觉得结合源码阅读非常的nice。BeanFactory与BeanDefinition这就是IOC中最重要的两个角色,而Spring揭秘是从如何处理对象之间的依赖这个角度去看Spring框架的,其实不论从任何
·
2023-02-03 12:02
javaspring
从
Spring源码学习
设计模式(工厂、单例、代理、观察者、模板)
从
Spring源码学习
5种设计模式学号:姓名:文章目录从
Spring源码学习
5种设计模式引言工厂模式Spring中的工厂模式单例模式Spring中的单例Bean代理设计模式SpringAOP的动态代理AOP
小孩的小马甲
·
2023-01-11 10:36
java
spring
学习
设计模式
【
Spring源码学习
】Spring Bean实例化过程-初始化
【
Spring源码学习
】SpringBean实例化过程-初始化一、调用Aware方法1.InitializeBean()2.invokeAwareMethods()二、InitializingBean接口
JAY-CHOW
·
2022-12-16 10:50
源码
Spring
spring
java
bean
spring源码--05--IOC原理--FileSystemXmlApplicationContext(IOC容器)的初始化(细)
FileSystemXmlApplicationContext(IOC容器)的初始化(细)1、验证过程代码地址https://gitee.com/DanShenGuiZu/learnDemo/tree/master/
spring
单身贵族男
·
2022-11-15 10:05
spring
spring
xml
容器
Spring源码学习
:BeanPostProcessor注册和执行时机
目录前言1BeanPostProcessors作用2源码分析2.1BeanPostProcessors注册时机2.1.1注册beanPostProcessorChecker2.1.2各种优先级BeanPostProcessor进行排序注册2.1.3重新注册ApplicationListenerDetector2.2BeanPostProcessors执行时机3扩展示例总结前言后置处理器是Sprin
LamaxiyaFc
·
2022-10-29 17:19
springboot
java
后端
spring源码学习
_bean的初始化
先回顾一下上一篇
spring源码学习
_bean的实例化过程bean实例化的流程这是上一篇说到的bean的实例化过程,我们就着这个图继续说。
卖女孩的jk
·
2022-10-29 16:30
spring学习
spring
java
bean
spring源码学习
:spring初始化流程
首先借个图,说明一下spring的bean的整个生命流程。销毁什么的这个看图就知道怎么回事,使用的话一般都是纯业务,而且我们更关心spring是怎么初始化的,初始化成我们定义的那个样子。我们就是以这个出发点来看一下spring的大概流程。spring的创建过程主要哪些步骤:主要是对象的创建和对象的初始化其实有人会疑问对象创建和对象初始化有什么区别?其实就是先后次序的问题。首先你要是用一个对象,要创
我是坑货
·
2022-10-29 16:54
spring
spring
学习
java
Spring源码学习
笔记12——总结篇,IOC,Bean的生命周期,三大扩展点
Spring源码学习
笔记12——总结篇,IOC,Bean的生命周期,三大扩展点参考了Spring官网文档https://docs.spring.io/spring-framework/docs/current
Cuzzz
·
2022-09-06 18:00
Spring 源码学习笔记10——Spring AOP
Spring源码学习
笔记10——SpringAOP参考书籍《Spring技术内幕》SpringAOP的实现章节书有点老,但是里面一些概念还是总结比较到位源码基于Spring-aop5.3.22可能和旧版本有所差异但是大体逻辑一致一丶
Cuzzz
·
2022-08-24 19:00
Spring源码学习
笔记9——构造器注入及其循环依赖
Spring源码学习
笔记9——构造器注入及其循环依赖一丶前言前面我们分析了spring基于字段的和基于set方法注入的原理,但是没有分析第二常用的注入方式(构造器注入)(第一常用字段注入),并且在循环依赖问题上构造器注入常被说
Cuzzz
·
2022-08-01 07:00
Spring源码学习
(七)-- 依赖注入源码解析(上)
Spring中到底有几种依赖注入的方式?首先分两种:手动注入自动注入手动注入在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。上面这种底层是通过set方法进行注入。上面这种底层是通过构造方法进行注入。所以手动注入的底层也就是分为两种:set方法注入构造方法注入自动注入自动注入又分为两种:XML的autowire自动注入@Autowired注解的自动注入XML的autowi
从头再来_f
·
2022-07-22 10:28
Spring源码
spring
java
源码
个人文章目录
目录
spring源码学习
spring事务(一)spring事务概念
·
2022-05-10 23:49
程序员
【
spring源码学习
】事务
@NullableprotectedObjectinvokeWithinTransaction(Methodmethod,@NullableClasstargetClass,finalInvocationCallbackinvocation)throwsThrowable{//Ifthetransactionattributeisnull,themethodisnon-transactional.
·
2022-05-09 10:22
java
Spring源码学习
一——容器启动过程上
文章目录一、AnnotationConfigApplicationContext构造方法1.1this()1.2register()1.3refresh()二、容器启动生命周期2.1prepareRefresh()2.2obtainFreshBeanFactory()2.2.1refreshBeanFactory()2.2.2getBeanFactory()2.3prepareBeanFactor
Integer_Double
·
2022-04-25 22:45
Spring
spring
Spring源码学习
③-生命周期
Bean生命周期:Bean创建=》初始化=》销毁的过程,我们称之为Bean的生命周期。Spring里面,是由容器来管理Bean的生命周期。我们可以自定义初始化和销毁方法,容器在Bean进行到当前生命周期的时候,就会调用我们自定义的初期化和销毁方法。调用顺序如下:①构造对象(对象创建)单实例:容器启动的时候,创建对象多实例:在每次获取对象的时候,创建对象②BeanPostProcessor.post
曾慧婷
·
2022-02-10 18:43
Spring源码学习
⑬-扩展原理ApplicationListener
3、ApplicationListener:监听容器中发布的事件,完成事件驱动模型的开发publicinterfaceApplicationListenerextendsEventListener{从ApplicationListener的定义来看,我们可以知道其监听的是ApplicationEvent及其子事件首先,自定义监听器及自定义事件发布步骤如下:1)、写一个监听器来监听事件(Applic
曾慧婷
·
2022-02-06 05:07
Spring5.0源码学习系列之浅谈BeanFactory创建
Spring5.0源码学习系列之浅谈BeanFactory创建过程系列文章目录提示:
Spring源码学习
专栏链接@TOC博客前言介绍提示:在上一章的学习中,我们简单了解了SpringIoC容器启动初始化的主流程
smileNicky
·
2021-06-25 16:25
Spring源码学习
系列(三)之bean的创建
这篇来记录bean的创建以及初始化等过程。从下面getBean()方法开始,开头申明,自己推敲且水平有限,无关注释或者有说错的地方轻喷。BeanFactoryfactory=newBeanFactory(newClassPathResource("beans.xml"));YourBeanbean=factory.getBean(YourBean.class);跟进getBean()方法发现进入了
just_like_you
·
2021-06-24 23:16
spring源码学习
(1)-环境搭建
前言提到源码,有种恐惧的感觉,不知道从哪开始看,该看哪些,怎么去看...与其想这么多,先搭好源码环境,再对照B站的一些源码分析视频和spring源码分析书籍来学习。准备环境jdk:1.8gradle:5.6.4idea:2020.3.4spring-framework:5.2.x构建源码前提:假设你的环境已配置完毕导入源码:File→new→ProjectformExistingSources→s
程序员阿爽
·
2021-05-30 16:39
Spring5.0源码学习系列之Spring AOP简述
前言介绍附录:
Spring源码学习
专栏在前面章节的学习中,我们对Spring框架的IOC实现源码有了一定的了解,接着本文继续学习Springframework一个核心的技术点AOP技术。
smileNicky
·
2021-05-30 09:03
Spring源码学习
之动态代理实现流程
注:这里不阐述Spring和AOP的一些基本概念和用法,直接进入正题。流程 Spring所管理的对象大体会经过确定实例化对象类型、推断构造方法创建对象(实例化)、设置属性、初始化等等步骤。在对象初始化阶段,Spring为开发者提供了一个BeanPostProcessor接口,它会在对象初始化之前和初始化之后被调用(初始化,不是实例化,对应实例化的是InstantiationAwareBeanPo
·
2021-05-10 13:32
Spring源码学习
(7) —— Spring配置文件id/name重复定义问题
引言在一次产品发布前夕,测试同学发现某一个接口异常,后来发现是因为在导出dubbo服务时,对同一个接口的两个版本使用了相同的服务引用导致,当时的dubbo导出配置如下:在dubbo服务导出时,并没有限制ref的唯一性,因此编译时没有暴露该问题。由此也随之引出了我们的思考,在Spring的配置文件中,是否允许bean的id/name重复呢?通过查阅一些资料,得到的结论大致如下,这里先把结论给出来,后
shysheng
·
2021-04-19 02:58
Spring源码学习
系列(四)之PostProcessor扩展点
上次文章粗略写完了如何从beanFactory.getBean(beanName)中获取一个完整的bean,以及其中bean的创建以及初始化等。在bean的创建以及BeanFactory的初始化前后会发现有不少扩展点,即xxxPostProcessor,是Spring提供的扩展模式。那么这篇就来探讨一下Spring的后置处理器以及核心的refresh()容器加载过程。1、惯例,从最简单的xxxxA
just_like_you
·
2021-04-18 01:40
spring源码学习
-下载编译(idea版本)
spring源代码下载github上spring源代码地址:https://github.com/spring-pro...,直接从该项目上下载源代码gitclonehttps://github.com/spring-projects/spring-framework.git这个地址下载是非常慢,有可能还会中途失败,这里告诉个小技巧,对于github上热门的项目,我们都可以在其镜像站中查找并下载:
清华
·
2020-12-11 15:53
java
spring
spring源码学习
之bean的初始化以及循环引用
实例化方法,把bean实例化,并且包装成BeanWrapper1、点进这个方法里面。这个方法是反射调用类中的factoryMethod方法。这要知道@Bean方法的原理,实际上spring会扫描有@bean注解的方法,然后把方法名称设置到BeanDefinition的factoryMethod属性中,接下来就会调到上面截图中的方法实现@Bean方法的调用。2、有参构造函数的时候determineC
·
2020-10-02 15:29
spring源码学习
(四)解析和注册BeanDefinition(下)
spring解析标签有2个主要方法,一个是parseDefaultElement另一个是parseCustomElement,一个用来解析默认的标签,另一个用来解析用户自定义的标签。我们来看一下parseDefaultElement方法。可以看到spring对import,alias,bean和beans做了不同的处理。bean标签的处理是最复杂的,所以先从processBeanDefinitio
晓_晨
·
2020-09-17 01:08
spring源码学习
spring源码学习
(三)解析和注册BeanDefinition(上)
spring通过registerBeanDefinitions来解析和注册BeanDefinition。下图是其中的源码,位于XmlDefinitionsReader类中1.先实例化了BeanDefinitionDocumentReader对象在实例化BeanDefinitionReader对象的时候,会把DefinitionRegistry传入,默认使用的使用的是DefaultListableB
晓_晨
·
2020-09-17 00:05
spring源码学习
Spring源码学习
笔记(四)-Aop获取增强、切点
获取增强共两步,第一步获取所有增强(findCandidateAdvisors()),第二步寻找适合该Bean的增强(findAdvisorsThatCanApply)。在上一章中,//获取增强Object[]specificInterceptors=getAdvicesAndAdvisorsForBean(bean.getClass(),beanName,null);AbstractAdviso
chenlin597898889
·
2020-09-16 08:57
Spring
spring源码学习
---Sping ioc 依赖来源
依赖来源主要包括:依赖查找的来源和依赖注入的来源。其中依赖注入的来源比依赖查找来源多一个非Spring容器管理对象(也可以叫游离对象)一、依赖查找的来源1.1、SpringBeanDefinition和单例对象1.2、Spring內建BeanDefintion1.3、Spring內建单例对象二、依赖注入来源依赖注入的来源包括自定义SpringBeanDefinition、单例对象、Spring內建
坤仔1
·
2020-09-15 02:36
spring源码学习
Spring源码学习
Spring源码学习
--ClassPathXmlApplicationContext(一)
spring源码学习
--FileSystemXmlApplicationContext(二)
spring源码学习
weixin_34310369
·
2020-09-12 07:59
Spring源码学习
--从Springboot的ApplicationContext获取Bean
某些类A无法注入的情况下,需要用到其他被Spring注入的对象B,此时在A类如果想使用B,可以采取下面的方式importorg.springframework.beans.BeansException;importorg.springframework.context.ApplicationContext;/***Description:获取bean工具**@authorDemoTransfer*
先说好不能骂我
·
2020-08-25 04:11
Spring相关技术
Spring源码学习
--Bean注入解析结果BeanDefinition
BeanDefinition描述了一个bean实例,拥有属性值、构造参数值和具体实现的其他信息,其是一个bean的元数据,xml中配置的bean元素会被解析成BeanDefinition对象。BeanDefinition的接口的结构类图:ChildBeanDefinition可以让子Bean定义拥有从父母哪里继承配置的能力。相应的,子Bean定义有一个固定的依赖--他们的父bean定义。一个子be
归田
·
2020-08-25 03:07
spring入门及源码学习
Spring入门及源码学习
spring源码学习
环境准备
前言工作四年了,spring的重要性不言而喻,但是却没系统的学习过spring源码,感觉好不应该。今年正好趁着机会好好的学习一下,自己写博客的意义在于对看书学习的一个总结,便于以后复习和指正,因为随着工作经验和个人能力的进步,理解的角度和深度都会不一样,这样就可以看以前博客,发现当时自己看书思维的局限性。主要借鉴的是spring源码深度解析这本书,使用的是spring3.2版本的源码分析,虽然现在
二月_春风
·
2020-08-24 17:19
Spring源码学习
笔记---数据访问(二)
ORM主要解决方案:Hibernate,ibatis,JDO,JPA以及Oracle的TOPLink----------HibernateTemplate类-----------Session是Hibernate与关系数据库进行数据访问的关键。HibernateTemplate类:统一对session的获取以及释放等管理逻辑进行封装,将session管理尽量保持在一处进行,而对于不同的数据访问需求
smallmayi0
·
2020-08-23 19:26
Spring源码学习
笔记---数据访问(一)
以统一的数据访问异常层次体系为核心,以JDBCAPI的最佳实践和统一集成各种ORM方案为两翼,为java平台提供完美的数据访问。异常层次体系:DataAccessException抽象类系列:CleanupFailureDataAccessExceptionInvalidDataAccessResourceUsageExceptionDataIntegrityViolationExceptionC
smallmayi0
·
2020-08-23 19:26
Spring源码之旅
spring源码学习
之路---环境搭建(一)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。最近已经开始了spring源码的学习,如果有哪位同学或者同道对此也感兴趣,可以跟着我一起学习,互相探讨spring的实质,扒开它的衣服。正题开始,学习源码第一步自然是配置学习的环境,需要具备以下条件:1.JDK1.62.开发工具eclipse或者myeclipse,或者你自己熟悉的JAVA开发工具。3.安装SVN插件。4.从https
piperzero
·
2020-08-23 06:45
Spring源码学习
-第一篇-在源码中添加自定义Demo代码
引言:1.为什么要读源码?(读源码的有哪些好处?)2.为什么读spring源码?(读懂Spring源码的有哪些好处?)3.读源码会遇到哪些困难和挑战?(读源码的学习方法总结)学源码前准备1、JDK1.8版本2、spring5.1.3.RELEASE最新版本3、需补一下Lambda表达式的知识4、安装配置gradleSpring源码下载1)gitclone--branchv5.1.3.RELEASE
伍婷
·
2020-08-23 01:41
Spring
spring源码学习
spring-core(一)ASM包
目录1.spring-core包概况1.spring-core包概况1.1ASM包概述:ASM:averysmallandfastJavabytecodemanipulationframeworkASM:一款非常小且快的java字节码操作框架ASM包内结构:Class-1.AnnotationVisitor(1).Class简介:AvisitortovisitaJavaannotation.The
slowly_boy
·
2020-08-22 14:37
sring源码
Spring MVC 学习笔记
(以下大多都是引用跟开涛学SpringMVC中的原话,嘿嘿,最近就是参考他的pdf结合
Spring源码学习
SpringMVC,记录下来,用作以后复习)国际惯例,先介绍下SpringMVC是个什么东东。
iteye_8992
·
2020-08-21 09:21
Spring
Springmvc
Spring源码学习
(1) ---Spring解析XML过程
Spring对XML配置文件的加载过程参考:《Spring源码深度解析》环境搭建需要:spring-core,spring-beans一般最常见的使用BeanFactory获取Bean的方法如下(XmlBeanFactory现已被弃用)publicvoidtestLoad(){BeanFactorybeanFactory=newXmlBeanFactory(newClassPathResource
fantow
·
2020-08-20 04:15
spring
Spring源码学习
笔记(3)
Spring源码学习
笔记(三)前言----最近花了些时间看了《Spring源码深度解析》这本书,算是入门了Spring的源码吧。打算写下系列文章,回忆一下书的内容,总结代码的运行流程。
weixin_30467087
·
2020-08-19 20:28
SPRING源码学习
之路(一)
结合《Spring技术内幕:深入解析SPRING架构与设计原理》这本书开启Spring学习之路。ps:之前其实已经看过一部分了,但是也就是看过,一看而过了。o(╯□╰)o结合FileSystemXmlApplicationContext来分析具体实现如下://对象初始化时候调用refresh(),启动了BeanDifinition载入过程publicFileSystemXmlApplication
丶roc
·
2020-08-19 10:57
spring
spring源码学习
之路---AOP初探(六)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。最近工作很忙,但当初打算学习spring源码的事已经基本告一段落,只是一直没时间写这些记录性的文字。本次鄙人学习spring的源码,有点囫囵吞枣的感觉,其实这样并非就不好,spring作为一个应用平台,自然不是那么好研究透彻的,而且也不太可能有人把spring的源码全部清楚的过上一遍,哪怕是spring的缔造者。不过最主要的原因是我们
iteye_19606
·
2020-08-19 10:42
Spring源码学习
之XmlBeanFactory的实现
我们在使用spring框架中,XmlBeanFactory是我们熟悉的,看spring的源码的XmlBeanFactory.class中我们可以看到其中的注释是RodJohnson在2001年就写下了,可见XMLBeanFactory是spring框架中的元老类了。源码如下图所示:XmlBeanFactory继承自DefaultListableBeanFactory这个类,这个类非常重要,是我们经
hsj1213522415
·
2020-08-19 10:02
Spring源码学习
思路
前言Java是基于接口编程,如果想要深入了解一个框架,那么最好还是从项目模块划分和每个模块核心接口去入手。如果希望学习Spring的源码,个人建议还是有一定是使用经验之后才去学习。本次针对的是Spring4.X版本的源码项目模块spring-core:Spring项目的核心,包含通用的工具类、公共的参数定义、与JDK动态代理和cglib的对接等。Spring的其他模块都会依赖spring-core
2的32次方
·
2020-08-19 08:00
Spring
Spring源码学习
(一)
目录如何阅读spring源码IOCBeanDefinitionstep-1项目的代码spring源代码AttributeAccessorBeanMetadataElementBeanDefinitionAnnotatedBeanDefinition如何阅读spring源码最近想学习一下spring,但是发现无从下手,看了一些网上的建议,决定这种方法试试。https://www.jianshu.co
TcCookEgg
·
2020-08-19 08:00
Spring
结合
Spring源码学习
单例设计模式
之前我学习了SpringIoc,明白了SpringIoC容器是一个管理Bean的容器,在Spring的定义中,它要求所有的IoC容器都需要实现接口BeanFactory,它是一个顶级容器接口。BeanFactory.java源码:packageorg.springframework.beans.factory;importorg.springframework.beans.BeansExcepti
歌在路上
·
2020-08-19 03:09
Spring
设计模式
Spring源码学习
--获取Document
Spring在容器的基本实现流程中会涉及到关于xml文件操作,在这里跟踪一下源码,看一下spring在解析xml文件之前,对xml的Document是怎么获取的。一、DefaultDocumentLoader在Spring中XmlBeanFactoryReader类对于文档的读取并没有亲自去做加载,而是委托给DocumentLoader去执行,其中DocumentLoader只是个接口:packa
先说好不能骂我
·
2020-08-18 03:55
Spring相关技术
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他