深入理解Spring IOC之扩展篇(八)、环境变量的校验
我们在讲refresh方法的那篇中说到了一个prepareRefresh的方法,这个方法主要是记录容器的状态以及对环境变量的校验,我们来看看这个方法的代码: protected void prepareRefresh() { // 1. 记...
我们在讲refresh方法的那篇中说到了一个prepareRefresh的方法,这个方法主要是记录容器的状态以及对环境变量的校验,我们来看看这个方法的代码: protected void prepareRefresh() { // 1. 记...
本篇说的是Spring中event的概念以及对它的扩展,顺便说说它的原理。 Spring中事件的顶层类是ApplicationEvent,我们自定义事件只需要继承这个类即可(更好的选择其实是继承ApplicationContextEvent...
上篇我们基于Spring的各种组件和注解把我们的业务逻辑和Spring进行了集成,其中我们定义了很多我们自己的注解。在本篇我们也将定义我们自己的注解,但是目的和上篇不同的是,上篇目的自定义注解是为了集成,而这篇的自定义注解是为了增强。 在d...
本篇讲的是如何将我们自己的业务逻辑和Spring框架整合起来,整合的方式主要采用的是注解,里面涉及到了多个知识点。 我们的目的是做出我们自己的注解,主要是标在接口上,当调用接口里相应的方法的时候,就会执行我们自己的逻辑。 对的,就是现在的M...
本篇讲的是Spring中的Aware接口,也应该是整个系列中最简单的一篇了,但是简单并不代表这玩意不重要,我们很多时候还是会用Aware接口去为我们做事情的。 我们知道,使用了Spring容器之后,我们创建对象这件事情完完全全的交给了Spr...
本文主要介绍三个初始化的方式,分别是@PostConstruct,InitializingBean,以及SmartInitializingSingleton这三个,我们直接三个一起用,来看看代码哈。 @Component public cl...
1. BeanFactoryPostProcessor 首先说BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor,先来看BeanFactoryPostProcessor:...
这个扩展篇,是基于我的深入理解Spring Ioc 系列写的,主要讲的是spring 装载解析bean这个过程中可以扩展的地方,可能你之前知道一些Spring 中的扩展点,但是却又缺乏一个整体的认识,那么相信我,看完了整个扩展篇,你就能把之...
总结 我们在之前的文章中,对spring加载bean的流程做了详细的讲解,我们知道要将xml中的各个节点解析成真正的bean要经过下面的主要过程: 1、将xml中的信息解析成BeanDefinition,这其中,XmlBeanDefinit...
如果你已经看到了这里并且把之前的都看明白了,那么恭喜你,最难的地方你已经搞定了。现在在整个spring ioc的流程中,对你来说应该不会再有太难的了,同时再去看spring的其他模块的源码,也相对会容易一些,尤其是其他框架和Spring整合...