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源码分析】
Spring源码分析
——解决循环依赖
Spring源码分析
——解决循环依赖文章目录
Spring源码分析
——解决循环依赖一、循环依赖二、循环依赖解决1.三级缓存2.循环依赖解决过程(1)缓存添加过程(2)获取缓存过程3.三级缓存解决循环依赖流程三
SK_Jaco
·
2020-08-17 09:19
Spring
Java
Spring源码分析
(三)(解决循环依赖)
spring解决循环依赖主要通过三级缓存去完成。/**Cacheofsingletonobjects:beanname-->beaninstance*/privatefinalMapsingletonObjects=newConcurrentHashMap(256);/**Cacheofsingletonfactories:beanname-->ObjectFactory*/privatefina
蛇皮皮蛋
·
2020-08-17 09:41
Spring源码
Spring
Spring源码分析
-IOC之SingletonBeanRegistry
SingletonBeanRegistry:定义对单例的注册及获取publicinterfaceSingletonBeanRegistry{//把一个给定的已经存在对象注册为单例voidregisterSingleton(StringbeanName,ObjectsingletonObject);//获取指定名称的单例对象ObjectgetSingleton(StringbeanName);//判
运动员写代码
·
2020-08-17 08:58
spring
spring
Spring源码分析
-IOC之BeanDefinitionHolder
BeanDefinitionHolder顾名思义就是对BeanDefinition的持有,同时持有的包括BeanDefinition的名称和别名,BeanDefinition我们在前面的文章已经介绍过
Spring
运动员写代码
·
2020-08-17 08:58
spring
spring
spring源码分析
之spring-web http详解
spring-web是springwebmvc的基础,它的功能如下:1.封装http协议中client端/server端的request请求和response响应及格式的转换,如json,rss,xml等。2.远程调用包括jaxws、caucho、httpinvoker3.web相关的accept/bind/client/context/filter/jsf/method/multipart先从h
aebdm757009
·
2020-08-17 08:32
Spring源码分析
——Bean创建和循环依赖
文章目录1:Spring创建Bean的主要代码区域2:Spring涉及的容器三级缓存二级缓存存在的意义3:getBean()分析(1):转换beanName(2):尝试从缓存中加载单例对象(3):bean的实例化(4)原型模式的依赖检査(5)检测parentBeanFactory(6)将存储XML配置文件的GemericBeanDefinition转换为RootBeanDefinition(7)寻
TheOctopus
·
2020-08-17 07:51
Spring
Spring源码分析
——BeanFactory体系之抽象类、类分析(一)
上一篇介绍了BeanFactory体系的所有接口——
Spring源码分析
——BeanFactory体系之接口详细分析,本篇就接着介绍BeanFactory体系的抽象类和接口。
weixin_33953249
·
2020-08-17 07:48
Spring源码分析
6---IOC 之从单例缓存中获取单例 bean
原文出自:http://cmsblogs.com从这篇博客开始我们开始加载bean的第一个步骤,从缓存中获取bean,代码片段如下:ObjectsharedInstance=getSingleton(beanName);if(sharedInstance!=null&&args==null){if(logger.isDebugEnabled()){if(isSingletonCurrentlyIn
一点一滴g
·
2020-08-17 07:55
Spring
Spring源码分析
-IOC之DefaultSingletonBeanRegistry
上一篇主要讲接口SingletonBeanRegistry,本篇主要讲述DefaultSingletonBeanRegistry,DefaultSingletonBeanRegistry主要对接口SingletonBeanRegistry各函数的实现,具体代码如下:/**DefaultSingletonBeanRegistry实现了SingletonBeanRegistry,主要用来管理单例对象,
运动员写代码
·
2020-08-17 07:00
spring
spring
spring源码分析
循环依赖
首先出现循环依赖肯定是自己的代码设计出现了问题,但是保不准真有这种情况发生啊。spring对原型模式的循环依赖的处理很简单,直接就抛出异常。创建失败protectedTdoGetBean(finalStringname,finalClassrequiredType,finalObject[]args,booleantypeCheckOnly)throwsBeansException{......i
hepei120
·
2020-08-17 07:43
spring
【
Spring源码分析
1】使用Maven配置Spring步骤,Spring的Bean创建以及属性注入的源码分析
目录1.Maven项目配置Spring1.1pom.xml中导入spring、日志和测试的依赖包1.2定义实体类1.3定义spring的配置文件applicationContext.xml(bean标签属性和子标签解释)2.测试代码3.源码解析3.1解析bean,生成beanDefinition,注册到beanFactory3.1.1解析bean工作的关键实现3.1.2注册beanDefiniti
OneTask
·
2020-08-17 06:43
spring
Spring源码分析
---单例模式
生活中的单例模式:配置文件(如果不是单例(针对于某一种功能的配置)两个配置文件中的内容一样的,则有一个是浪费的;如果是不一样的,我们就不知道以哪个为准了)。直接上级领导(对于你来说,如果有多个领导,你到底听谁的?选择恐惧症)在万千世界中,即使是一片小小的树叶,他们都是长得不一样的。单例模式的特点:1、保证从系统启动到终止,全过程只会产生一个实例。2、当我们在应用中遇到功能性冲突的时候,需要使用单例
Casablanca_jhBi
·
2020-08-16 16:05
Spring
spring源码分析
第一章 spring单例bean注册表
spring单例bean注册表类图packageorg.springframework.core;/***定义单例别名的注册,查询服务*@authorJuergenHoeller*@since2.5.2*/publicinterfaceAliasRegistry{/***给指定的bean设置别名*@parambean名称*@paramalias注册的别名*@throwsIllegalStateEx
chiwanxu1820
·
2020-08-16 12:39
Spring源码分析
十四:事务实现① - AutoProxyRegistrar
文章目录一、前言二、@EnableTransactionManagement三、TransactionManagementConfigurationSelector四、AutoProxyRegistrar1.AopConfigUtils.registerAutoProxyCreatorIfNecessary(registry)2.InfrastructureAdvisorAutoProxyCrea
猫吻鱼
·
2020-08-15 15:03
#
源码分析篇
Spring源码分析
十六:事务实现③ - 事务的创建
文章目录一、前言1.TransactionSynchronizationManager2.事务传播属性二、事务的创建-createTransactionIfNecessary1.获取事务-tm.getTransaction(txAttr);1.1.doGetTransaction();1.2.isExistingTransaction(transaction)1.3handleExistingTr
猫吻鱼
·
2020-08-15 15:03
#
源码分析篇
Spring源码分析
十八:事务实现⑤ - 事务的提交
文章目录一、前言二、事务的提交-commitTransactionAfterReturning1.processRollback(defStatus,false);2.processCommit(defStatus);三、总结一、前言本文是笔者阅读Spring源码的记录文章,由于本人技术水平有限,在文章中难免出现错误,如有发现,感谢各位指正。在阅读过程中也创建了一些衍生文章,衍生文章的意义是因为自
猫吻鱼
·
2020-08-15 15:32
#
源码分析篇
Spring源码分析
十七:事务实现④ - 事务的回滚
文章目录一、前言二、事务的回滚-completeTransactionAfterThrowing1.AbstractPlatformTransactionManager#rollback1.1.自定义触发器的调用1.2.回滚逻辑处理1.2.1.status.rollbackToHeldSavepoint();1.2.2.doRollback(status);1.2.3.doSetRollbackO
猫吻鱼
·
2020-08-15 15:32
#
源码分析篇
Spring源码分析
十五:事务实现② - ProxyTransactionManagementConfiguration
文章目录一、前言二、ProxyTransactionManagementConfiguration1.BeanFactoryTransactionAttributeSourceAdvisor1.1.TransactionAttributeSourcePointcut2.AnnotationTransactionAttributeSource2.1AnnotationTransactionAttri
猫吻鱼
·
2020-08-15 15:31
#
源码分析篇
【
spring源码分析
(二)】IOC容器初始化---AbstarctApplicationContext类的refresh方法
承接上篇文章,分析AbstarctApplicationContext类的refresh方法首先看下refresh方法的源码publicvoidrefresh()throwsBeansException,IllegalStateException{synchronized(this.startupShutdownMonitor){//重新设置容器启动时间和启动标志字段prepareRefresh(
和光同其尘
·
2020-08-14 22:10
spring源码分析
Spring源码分析
文章目录为什么要看Spring源码如何看源码Spring中的IoC容器BeanFactoryBeanDefinitionSpring容器的初始化流程IoC容器的使用容器初始化入口解析&注册BeanDefinitionBeanDefinitionReader继承结构总结一下Bean的实例化&依赖注入bean实力化小结循环依赖问题SpringAOP原理查找BeanDefinitionReaderAop
Olge
·
2020-08-14 22:31
Code-Spring
spring源码分析
-配置文件加载过程
以property-placeholder为例(1)看spring如何读取xml配置文件中的标签(2)加载properties文件的过程入口:AbstractApplicationContext的refresh()中的ConfigurableListableBeanFactorybeanFactory=this.obtainFreshBeanFactory();这个方法生成BeanFactory,
silentWolf-k
·
2020-08-14 22:04
Spring源码分析
:IOC容器初始化(一)
原文发布于:http://blog.ztgreat.cn/article/57前言在前面先分析了最底层的IOC容器BeanFactory,接着简单分析了高级形态的容器ApplicationContext,在ApplicationContext中我们知道一个核心方法refresh,这里面就是IOC容器的初始化流程,在前面并没有直接去分析它,只是简单的分析了BeanDefinition的载入,解析注册
zthgreat
·
2020-08-14 20:15
【Spring源码分析】
Spring源码分析
Spring源码分析
2 — 容器启动流程
1主要类部署web应用时,web容器(比如Tomcat)会读取配置在web.xml中的监听器,从而启动spring容器。有了spring容器之后,我们才能使用spring的IOCAOP等特性。弄清spring容器启动流程,有利于理解springIOC中的各种特性,比如BeanPostProcessor,MessageSource,ApplicationListener等。我们先来看下容器启动流程中
谢杨易
·
2020-08-14 20:46
移动开发
mybatis-
spring源码分析
(有图解)
springboot所有的中间件配置都是从xxxAutoConfiguration开始的。mybatis也不例外。MybatisAutoConfiguration最重要的3个方法接下来按照执行顺序,逐一讲解一、MapperScannerRegistrarNotFoundConfiguration这个类不一定会执行,主要取决于1、那么这个bean什么时候会有,什么时候会没有呢?这取决于你用什么方式扫
Old Wang
·
2020-08-14 18:42
java
Spring源码分析
之一:spring容器启动以及获取Bean实例所做的事
一般手动启动spring容器和获取Bean实例我们会写如下代码:BeanFactorybf=newXmlBeanFactory(newClassPathResource("testBean.xml",getClass()));MyTestBeanbean=(MyTestBean)bf.getBean("myTestBean");或者是ApplicationContextbeans=newClass
学之以恒_大道至简
·
2020-08-14 16:53
源码分析
Spring源码分析
——SpringMVC实现
SpringMVC概述SpringMVC是Spring的一个重要模块,在Web应用中MVC的设计模式已经广为人知,MVC的设计概念如下图所示MVC模式在UI设计中使用的非常普遍,在Gof的设计模式的经典著作中,开篇就是这个模式。这个模式的额主要特点是分离了模型,视图与控制器三种角色,将业务处理从UI设计中独立出来,封装到模型与控制器设计中去。使得它们相互解耦可以独立扩展。使用SpringMVC的时
tinysakurac
·
2020-08-14 06:48
spring
源码分析
spring怎么在controller层使用自定义的注解
要解决这个问题首先需要了解springmvc的实现原理,具体可以参考博主的这篇博客
Spring源码分析
——SpringMVC实现简单的说,一个Http请求会被mvc框架包装成一个HandlerExecutionChain
tinysakurac
·
2020-08-14 05:51
spring
spring源码分析
之----扫描bean定义流程
在这里插入代码片##一、部分源码剖析ApplicationListener作用:applicationListener可以监听某个事件event,通过实现这个接口,传入一个泛型事件,在run方法中就可以监听这个事件,从而做出一定的逻辑比如在等所有bean加载完之后执行某些操作设计模式:观察者模式运行流程图创建多播器源码protectedvoidinitApplicationEventMultica
追梦QK
·
2020-08-12 14:13
spring
Spring 源码学习-环境准备
下面是正文一起来准备阅读Spring源码代码环境准备设置Gradle路径下载依赖和编译
Spring源码分析
大致流程遇到的坑无法识别Gradle项目gradle版本和Idea版本不匹配参考资料代码环境准备
javageektech
·
2020-08-12 14:08
Spring启动流程(四)之Bean初始化前后的一些操作
【
Spring源码分析
】非懒加载的单例Bean初始化前后的一些操作再看AbstractApplicationContext的refresh方法中的细节:Spring默认加载的两个Bean,systemProperties
Vencent Kim
·
2020-08-12 14:37
Spring
Spring源码分析
:AOP代理
Spring源码分析
:AOP代理Aop使用Aop切面接口接口实现运行JDK代理和Cglib代理JDK代理与Cglib代理区别源码分析获取代理对象生成代理对象为什么JDK动态代理必须是接口Aop使用Aop
bluesnail95
·
2020-08-10 07:18
Spring
spring
源码
Spring源码分析
:事务是如何进行拦截的
目录示例代码ServiceMapperTransactionInterceptor事务拦截器CglibAopProxy.getProxy代理回调过滤器DynamicAdvisedInterceptor事务回滚示例代码ServicepublicclassBlogServiceImpl{@Transactional(readOnly=true)publicListfindAllBlog(Blogblo
bluesnail95
·
2020-08-10 07:18
Spring
spring
java
Spring源码分析
:@Configuration是如何实现代码增强的
@Configuration源码分析@Configuration介绍代码示例@Configuration类如何实现代理@Configuration在哪一步变成代理对象调用后置处理器调用@Configuration注解的后置处理器"full"模式or"lite"模式ConfigurationClassUtils创建代理对象为什么无法下载org.springframework.cglib包源码@Con
bluesnail95
·
2020-08-10 07:18
Spring
spring
java
Spring源码分析
:IOC依赖注入
Spring源码分析
:IOCIOC容器的原理读取资源文件注册Bean过程代码编写xml方式注解方式实现一个自己的BeanDefinition注册器添加@Import注解实现BeanDefinitionRegistryPostProcessorIOC
bluesnail95
·
2020-08-10 07:18
Spring
MySQL为什么不用数组、哈希表、二叉树等数据结构作为索引呢
扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多
Spring源码分析
、Java并发编程和Netty源码系列文章。
天堂2013
·
2020-08-09 10:30
MySQL
Spring源码分析
——Ioc实现原理
1.初始化大致单步跟了下SpringIOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到BeanFactory中:在完成初始化的过程后,Bean们就在BeanFactory中蓄势以待地等调用了。下面通过一个具体的例子,来详细地学习一下初始化过程,例如当加载下面一个bean:12345678加载时需要读取、解析、注册bean,这个过程具体的调用栈如下所示:下面对
jayxu无捷之径
·
2020-08-08 17:12
java
web
spring
源码
【八】
Spring源码分析
之扫描注册Bean----ConfigurationClassPostProcessor的processConfigBeanDefinitions方法
一、简介该后置处理器是扫描、解析、注册所有配置类的Bean入口扫描、解析、注册所有配置类bean的流程图:二、源码ConfigurationClassPostProcessor类processConfigBeanDefinitions方法publicvoidprocessConfigBeanDefinitions(BeanDefinitionRegistryregistry){Listconfig
jy02268879
·
2020-08-06 12:27
Spring源码分析
Spring源码分析
这个是我的模拟调用publicclassClient{publicstaticvoidmain(String[]args){//解析bean.xml文件ApplicationContextac=newClassPathXmlApplicationContext("bean.xml");//这里是得到我的bean文件里的beanIAccountServiceas=(IAccountService)a
放下梧菲
·
2020-08-05 15:39
spring源码分析
-spring上下文的初始化
下面是上下文初始化的核心方法publicvoidrefresh()throwsBeansException,IllegalStateException{Objectvar1=this.startupShutdownMonitor;synchronized(this.startupShutdownMonitor){//准备工作this.prepareRefresh();//获取beanFactory
silentWolf-k
·
2020-08-04 08:16
Spring源码分析
【1】-Tomcat的初始化
org.apache.catalina.startup.ContextConfig.configureStart()org.apache.catalina.startup.ContextConfig.webConfig()进入org.apache.catalina.startup.ContextConfig.processServletContainerInitializersprocessSer
unix21
·
2020-08-04 03:12
Spring
Mybatis如何融入到Spring大家族的?
Mybatis集成到Spring中的配置3.1.我随便找了一个项目的DB项目的applicationContext.xml3.1.1.配置样例3.1.2.配置流程概述3.1.3.配置流程图4.MyBatis-
Spring
东山Word
·
2020-08-04 03:47
mybatis
【
Spring源码分析
】40-Spring Validation参数校验的使用与原理
1、什么是BeanValidationJSR-303(JSR是JavaSpecificationRequests的缩写,意思是Java规范提案)是JAVAEE6中的一项子规范,叫做BeanValidation,HibernateValidator是BeanValidation的参考实现。HibernateValidator提供了JSR303规范中所有内置constraint的实现,除此之外还有一些
一直不懂
·
2020-08-04 00:11
Spring源码分析
spring源码分析
(二)——bean的生命周期
spring源码分析
(二)——springbean的生命周期bean的生命周期分为三个阶段:bean创建—初始化----销毁的过程在bean创建之后,我们可以在bean的初始化和销毁的前后对bean做一些处理
青春季风暴
·
2020-08-03 20:49
spring
Spring源码分析
-AOP之JDK动态代理实现
0X01前提条件基于XML配置加载beanSpringV4.0.8.RELEASEbean为单例模式基于JDK动态代理实现,Cglib暂且不表,其实两者大致流程差不多,只不过在生成具体代理对象的时候会有点差异0X02实现方法 要了解SpringAOP的实现原理需要将AnnotationAwareAspectJAutoProxyCreator,bean的创建和bean的方法调用三者联系起来。Ann
nickyyu
·
2020-08-03 20:14
Spring
Spring源码分析
:@Autowired注解原理分析
前言关于@Autowired这个注解,我们再熟悉不过了,经常跟@Resource来做对比,这篇文章我们不讨论两者有何异同,仅分析@Autowired的原理(基于Spring5)。问题假如一个接口(IUserService)有两个实现类,分别是(UserServiceImpl01)和(UserServiceImpl02),在我们给类注入的时候,这样写(@AutowiredprivateIUserSe
在谷歌上百度
·
2020-08-03 18:37
java
Spring源码分析
:声明式事务梳理
使用注解方式简单模拟事务样例说明数据源采用c3p0采用JdbcTemplate持久化采用Spring事务注解环境搭建POM依赖c3p0c3p00.9.1.2org.springframeworkspring-jdbc4.3.12.RELEASEmysqlmysql-connector-java5.1.44runtimeorg.springframeworkspring-aspects4.3.12.
在谷歌上百度
·
2020-08-03 18:06
java
Spring源码分析
:Spring的循环依赖分析
引言基于Spring5+什么是循环依赖?循环依赖有几种?Spring可以解决哪几种,为什么不能解决这几种?Spring是如何判断存在循环依赖的?什么是循环依赖?什么是循环依赖?我们都知道Spring最大的作用就是来替我们管理Bean的,当然也包括Bean的创建以及整个生命周期,但是有这么一种情况,假设有三个类A、B、C需要交给Spring来管理,但A实例的创建需要先有B实例,而B实例的创建需要先有
在谷歌上百度
·
2020-08-03 18:06
java
Spring源码分析
:BeanPostProcessor原理
BeanPostProcessor即,Bean的后置处理器,它的作用就是在Bean的初始化方法前跟后进行拦截处理。我们都知道,要想在Bean的初始化方法前后进行工作,那必须在Bean实例创建完成之后,init方法执行之前,后置处理器就已经在容器中了,所以我们来到向容器中添加后置处理器的类AbstractApplicationContext,其中refresh()中的registerBeanPost
在谷歌上百度
·
2020-08-03 18:06
java
Spring源码分析
——资源访问利器Resource之接口和抽象类分析
从今天开始,一步步走上源码分析的路。刚开始肯定要从简单着手。我们先从Java发展史上最强大的框架——Spring、、、旗下的资源抽象接口Resource开始吧。我看了好多分析Spring源码的,每每一开始就是SpringIOC、AOP、BeanFactory这样的Spring典型模块,实在看厌了,这些暂且留到以后。我的想法是,分析就分析别人没分析过的,或者以不同的角度来分析别人分析过的。可能很多用
weixin_34128237
·
2020-08-03 11:27
Spring源码分析
(一)-Spring IoC容器的设计
本章的内容根据SpringMVC源码剖析(二)-DispatcherServlet的初始化的相关内容,主要研究SpringIoC容器的初始化IoC容器的接口设计图从上图可以看出整个IoC容器主要分为2个部分:BeanFactory和ApplicationContext,接下来我们分别分析这两个接口BeanFactoryBeanFactory提供的是最基本的IoC容器的功能,我们对BeanFacto
qq418517226
·
2020-08-02 13:48
Spring
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他