首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
spring源码分析
zhen_hong
创建于2024-04-08
订阅专栏
spring源码分析
暂无订阅
共20篇文章
创建于2024-04-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
1、容器的创建
通过idea快速搭建一个基于spring的web应用,我们就可以从web.1.initWebApplicationContext(event.public WebApplicationContext org.springframework.web.context.Cont...
2、容器的刷新
上一节分析了父容器(ClasspathXmlApplicationContext)的加载,其加载的配置文件可以在web.xml中配置,但是并没有仔细的去研究父容器的创建的过程,那是因为父容器的创建与子容器的创建基本一致。本节将分析ApplicationContext与Be...
3、配置文件的加载
前两节分析到容器的创建和刷新,并且在刷新的时候创建了XmlBeanDefinitionReader,开始了配置文件的加载。protected void org.springframework.web.context.support.XmlWebApplicationContext...
4、自定义标签的解析
上一节我们分析了配置文件的加载,我们已经了解到了spring是如何加载配置文件的。那么这一节我们开始了解一下spring是如何解析这些资源的。public int XmlBeanDefinitionReader.Assert.if (logger.logger.info(...
5、解析默认标签
前一小节,我们分析了加载Document和解析自定义标签的过程,接下来我们回到解析spring默认标签的方法。private void org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentR...
6、注解bean的扫描
通常我们需要开启诸如@Component,@Service之类的注解,会在xml中配置一段这样的标签 这样我们就可以在指定的包下面使用注解的方式构建bean了,context是自定义的一个命名空间,需要使用自定的方式进行解析,前面我们分析了自定义标签的解析,我们知道spr...
7、注解配置的解析
synchronized (this.// Prepare this context for refreshing.// Tell the subclass to refresh the internal bean factory.// Prepare the bean fact...
8、配置类的加载
第二小节spring已经准备好了配置类,就差读取了。现在我们就顺着spring的流程继续往下分析。//使用条件进行筛选过一次,但是除了@ComponentScan之外跳过的都是ConfigurationPhase.//所以还是需要进行ConfigurationPhase....
9、bean创建前奏之beanName与属性名占位符解析
我们在项目中或多或少都会使用properties配置文件,比如配置数据源的时候,可能会在classpath目录下配置一个jdbc.properties文件,用于配置数据库相关的url地址,数据库密码等相关的信息。if (this.this.if (this.this.pr...
10、bean创建前奏之BeanPostProcessor的注册
前面的章节我们分析了容器refresh方法中前5个方法,下次我们来分析下一个方法registerBeanPostProcessors。public void org.springframework.context.support.AbstractApplicationCo...
11、ListableBeanFactory的getBeanNamesForType
return doGetBeanNamesForType(ResolvableType.(includeNonSingletons ? this.allBeanNamesByType : this.String[] resolvedBeanNames = cache.resolv...
12、getBean
在我们使用spring的时候,我们需要ApplicationContext的时候我们会让某个类实现ApplicationContextAware接口,spring在调用refresh刷新方法的时候会在其内部方法prepareBeanFactory中添加Applicatio...
13、bean的实例化
第三小节spring为了判断工厂方法返回bean的类型,进行了工厂实例化,并调用工厂方法创建实例。protected BeanWrapper AbstractAutowireCapableBeanFactory.// Make sure bean class is act...
14、aop通知的创建
public void org.springframework.aop.config.AopNamespaceHandler.// In 2.0 XSD as well as in 2.1 XSD.// Only in 2.0 XSD: moved to context name...
15、筛选advisor
protected List<Advisor> org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.ProxyCreationContext.return AopUtils.Pro...
16、创建aop代理
protected Object org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.if (this.AutoProxyUtils.exposeTargetClass((Configurabl...
17、事务配置的解析
我们在spring使用事务有三种方式,第一种使用xml配置的方式配置,第二种使用注解的方式配置,第三种使用编程的方式。 class="org.springframework.jdbc.datasource.public final BeanDefinition org.s...
18、事务的创建
上一节,我们围着spring事务绕了一圈,大致看了下事务的外貌,挺漂亮的,但是咱是有内涵的人,做人不能只看外表,俗话说好看的皮囊千千万,有趣的灵魂万里挑一,所以光有一张好看的皮囊是不够的,关键还得看内存,虽然现实好像不是这样。 好了,在进行目标方法调用前,spring肯定...
19、事务的回滚与提交
if (txInfo != null && txInfo.if (logger.logger.trace("Completing transaction for [" + txInfo.if (txInfo.transactionAttribute.txInfo.getTrans...
20、spring源码系列总结
1.如果在web.-》 如果在web.xml中配置了locatorFactorySelector上下文参数,那么根据这个参数指定的位置去加载配置文件(如果没有指定,那么默认加载classpath*:beanRefContext.-》 从web.xml配置文件中获取spring配置...