读书笔记
徐旌洲
这个作者很懒,什么都没留下…
展开
-
Spring技术内幕笔记(一)------BeanFactory和ApplicationContext
BeanFactory的应用场景BeanFactory接口定义了IoC容器最基本的形式,并且提供了IoC容器应该遵守的最基本的服务起源,同时也是我们使用IoC容器BeanFactory为我们提供了以下操作通过接口方法containsBean让用户能够判断容器是否含有指定名字的Bean通过接口方法isSingleton来查询指定名字的Bean是否是Singleton类型的Bean。对于S...原创 2019-05-23 00:19:01 · 215 阅读 · 0 评论 -
Spring技术内幕笔记(十三)----autowiring(自动依赖装配)的实现
autowiring在Spring中,我们如果想进行Bean的关系依赖,要么使用显式的BeanDefinition属性值,来对Bean进行依赖,要么使用自动装配的方式来进行依赖,这样的方式为容器提供了很大的遍历,使我们不需要显式的对Bean属性进行依赖关系声明,只要配置好autowiring属性,IOC容器就会根据这个属性的配置,使用反射自动查找属性的类型或名字。在populateBean这个...原创 2019-07-15 23:57:47 · 315 阅读 · 0 评论 -
Spring技术内幕笔记(十二)------BeanPostProcessor的实现
什么是BeanPostProcessorBeanPostProcessor是使用Ioc容器的时经常会遇到的一个特性,这个Bean的后置处理器是一个监听器。将后置处理器向Ioc容器中注册之后,容器中管理的Bean具备了接收Ioc容器事件回调的能力。BeanPostProcessor是一个接口类,它具有两个接口方法,一个是PostProcessorBeforeInitialization,在Bea...原创 2019-07-15 23:25:40 · 203 阅读 · 0 评论 -
Spring技术内幕笔记(十)------lazy-init属性和预实例化
lazy-init属性和预实例化在IOC容器的初始化过程中,主要就是对BeanDefinition的定义,载入,解析和注册。而我们所说的依赖注入是发生在应用第一次向容器所要bean的时候,也就是调用 getBean的时候。spring在启动的过程中主要发生两个过程初始化容器对bean进行初始化并依赖注入(对no-lazy-init属性的bean)我们所有说lazy-init就是懒加载...原创 2019-07-01 00:43:48 · 626 阅读 · 0 评论 -
Spring技术内幕笔记(十一)------FactoryBean的实现
FactoryBean一般情况下,Spring通过反射机制利用bean的Class属性指定实现类来实例化bean。而FactoryBean是一种特殊的bean,是一个工厂bean,可以自己创建bean实例,如果一个类实现了Factorybean接口,则该类可以自己定义创建实例对象的方法,只需要实现getObject方法就好为了区分FactoryBean和FactoryBean创建的bean实例...原创 2019-07-09 00:45:35 · 222 阅读 · 0 评论 -
Spring技术内幕笔记(七)------Bean依赖关系设置#populateBean()
Spring是如何设置实例化对象的依赖关系的在上一篇中,我们已经了解了实例化bean对象的整个过程。在实例化bean对象生成的基础上,我们再来分析一下Spring是如何对这些对象进行处理的,也就是如何设置这些bean对象的依赖关系。在doCreateBean()中当我们实例化Bean对象完成之后,就可以初始化这个Bean对象了,也就是我们所说的设置Bean的依赖关系,populateBean(...原创 2019-06-25 00:16:19 · 752 阅读 · 0 评论 -
Spring技术内幕笔记(九)------ApplicationContext和Bean的初始化及销毁
ApplicationContext的初始化及销毁在Spring中,我们将BeanFactory和ApplicationContext称作它的IOC容器,既然是容器那么他就会存在初始化和销毁的过程,接下来我们就来了解一下容器的初始化和销毁过程。容器的初始化过程发生在AbstractApplicationContext#prepareBeanFactory中/** * Configure ...原创 2019-06-27 00:07:26 · 553 阅读 · 0 评论 -
Spring技术内幕笔记(八)------对Bean Reference的解析
在上篇文章中我们了解到了如何设置Bean之间的依赖关系,以及如何将一个Bean设置到它所依赖的另一个bean的属性中,但是我们还忘了一步,就是对BeanDefinition进行解析,在Spring中是通过BeanDefinitionResolver来对BeanDefinition进行解析的。在populateBean()会创建一个BeanDefinitionValueResolver对象,然后调...原创 2019-06-25 23:44:48 · 1129 阅读 · 0 评论 -
Spring技术内幕笔记(六)------IoC容器依赖注入#doGetBean()
IoC容器依赖注入在上一篇中我们了解了getBean()的大致过程,并对其进行了总结,getBean()就是依赖注入的入口方法,在这个方法里面触发了依赖注入,而依赖注入的前提就是容器中的BeanDefinition数据已经建立好的前提下进行的。getBean()是依赖注入的起点,之后会调用createBean。在createBean中,Bean对象会依据BeanDefinition定义的要求生...原创 2019-06-04 00:39:57 · 482 阅读 · 0 评论 -
Spring技术内幕笔记(四)------IoC容器初始化过程#BeanDefinition在容器中的注册
Ioc容器的初始化过程在上一篇中,我们已经分析过BeanDefinition在Ioc容器中的载入和解析过程,在经过以上步骤之后,用户所定义的BeanDefinition信息已经在IoC容器中建立起来自己的数据结构以及相应的数据表示,但是这些数据还是不能供IoC容器直接使用,我们需要将这些数据注册到IoC容器中。在DefaultListableBeanFactory中是通过一个Concurrent...原创 2019-05-30 00:20:13 · 187 阅读 · 0 评论 -
Spring技术内幕笔记(三)------IoC容器初始化过程#BeanDefinition的载入和解析
IoC容器的初始化过程在上一篇中我们讨论了对代表BeanDefinition的Resource定位的分析后,接下来就需要了解整个BeanDefinition信息的载入过程。在AbstractApplicationContext#refresh()方法中,有这样一段代码ConfiguableListableBeanFactory beanFactory = obtainFreshBeanFac...原创 2019-05-29 01:18:32 · 199 阅读 · 0 评论 -
Spring技术内幕笔记(二)------IoC容器初始化过程#BeanDefinition的资源定位
IoC容器的初始化过程在上一篇中提到,在ApplicationContext的构造方法中有一个refresh()方法,这个方法标志着IoC容器的正式启动。IoC容器的初始化主要包括以下三个基本过程Resource定位过程BeanDefinition的载入向IoC容器注册这些BeanDefinition的过程Spring将这三个过程分开同时使用不同的模块来完成,通过这样的设计可以让用户...原创 2019-05-24 01:06:32 · 177 阅读 · 0 评论 -
Spring技术内幕笔记(五)------IoC容器依赖注入#doGetBean()
IoC容器依赖注入在前几篇笔记中,我们已经了解到如何对IoC容器进行初始化,初始化的过程主要是在IoC容器中建立BeanDefinition的相关映射,接下来我们就开始研究,如何利用这些BeanDefinition使IoC容器可以对Bean的依赖关系进行注入的。getBean()在通常情况下,依赖注入发生的过程是用户第一次向IoC容器索要Bean时触发的,当然如果在BeanDefinitio...原创 2019-05-31 01:01:49 · 216 阅读 · 0 评论 -
Spring技术内幕笔记(十四)------AOP概述
AOP概念回顾AOP是Aspect-Oriented Programming(面向方面编程或面向切面)的简称。面向切面编程为我们提供了有别于面向对象的角度,来思考程序结构,通过这种方式来弥补面向对象的不足。面向对象强调的是一切皆对象。同样我们也可以说面向接口,一切皆接口。面向服务一切皆服务。同理面向切面。我们拿面向接口举例,强调的就是我们在开发中操纵的都是一些接口,而不去关心其具体实现。...原创 2019-07-19 00:01:21 · 159 阅读 · 0 评论