前言:之前写过两篇基于xml形式的IOC容器初始化过程,现在看来写的比较烂,最近又继续阅读spring源码,对IOC容器的初始化有了一些新的认识,因此决定记录下来,加深自己对spring的印象与理解。 注:本人的spring源码项目地址:https://github.com/morewindows0 ...
分类:
编程语言 时间:
2018-11-22 22:26:02
阅读次数:
189
前言:最近一直在看Spring源码,今天在调试的时候发现一个小问题:在注册bean时,需要初始化Spring默认命名空间处理器,具体在DefaultNamespaceHandlerResolver中实现,但是当Debug时,发现handlerMappings已经赋值,顿感奇怪。下面记录一下该问题。 ...
分类:
移动开发 时间:
2018-11-22 18:20:44
阅读次数:
280
bean的加载步骤: MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");步骤:(1) 转换对应的beanName name="&aa"=>name="aa" || A->B->C=>C(2) 尝试从缓存中加载单例 singletonFac ...
分类:
编程语言 时间:
2018-11-16 10:29:18
阅读次数:
123
前言 前面两篇介绍了上下文的启动流程和Environemnt的初始化,这两部分都是属于上下文自身属性的初始化。这篇开始进入Spring如何加载实例化Bean的部分 — 资源抽象与加载。 本文主要从以下方面介绍Spring中的资源Resource: 前提准备 Resource抽象 Resource加载 ...
分类:
编程语言 时间:
2018-11-14 19:05:31
阅读次数:
178
探索spring源码实现,精华的设计模式,各种jdk提供的陌生api,还有那么点黑科技都是一直以来想做的一件事!但是读源码是一件非常痛苦的事情,需要有很大的耐心和扎实的基础。 在曾经读两次失败的基础上,这次希望能一站到底!这个系列基于spring v4.3.20版本探索。 Spring上下文启动加载 ...
分类:
编程语言 时间:
2018-11-05 11:21:39
阅读次数:
255
何为Envoriment Envoriment是集成在Spring上下文容器中的核心组件,在Spring源码中由 "Envoriment" 接口抽象。 在Environment中,有两大主要概念: Profile:在Spring中profile是针对Bean定义而言,是Bean定义的逻辑分组。通常表 ...
分类:
编程语言 时间:
2018-11-05 11:10:23
阅读次数:
247
beanName的确定 spring 在实例化bean之前,首先需要解析bean的配置,bean的配置要么通过标签配置在xml文件中,要么通过注解的形式声明一个bean. 要保存每一个bean解析后的配置,以便方便后面的bean的实例化。大家肯定都能想到配置信息必然是保存在map数据结构中,那么ke ...
分类:
编程语言 时间:
2018-10-28 20:43:31
阅读次数:
144
Spring 源码关于 RequestContext 相关信息获取 事件监听器的相关代码实现 ...
分类:
编程语言 时间:
2018-10-23 14:52:45
阅读次数:
125
1. 首先定义实体 2. 属性文件test.properties放在resource下 3. spring的配置类 @PropertySource(value = "classpath:/test.properties")将属性文件读取到内存中 4. 测试 5. 测试结果 前面的都是bean的后置处 ...
分类:
编程语言 时间:
2018-10-23 10:50:16
阅读次数:
254
1.什么是AOP。 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。 2.AOP的作用。 在程序运行期间,不修改源码对已有方法进行增强。 3.动态代理 3.1 JDK ...
分类:
编程语言 时间:
2018-10-19 14:11:14
阅读次数:
173