Spring
文章平均质量分 72
Spring学习
好人Luke
在成长的道路上。
展开
-
八、Spring Bean生命周期
在这篇文章中我们开始学习Bean的生命周期相关的知识,整个Bean的生命周期可以分为以下几个阶段:1)实例化(得到一个还没有经过属性注入跟初始化的对象)2)属性注入(得到一个经过了属性注入但还没有初始化的对象)3)初始化(得到一个经过了初始化但还没有经过AOP的对象,AOP会在后置处理器中执行)4)销毁生命周期回调1、Bean初始化回调实现初始化回调方法,有以下三种形式1)实现InitializingBean接口如下:public class AnotherExample...原创 2021-11-19 00:20:27 · 62 阅读 · 0 评论 -
七、Spring IOC——finishBeanFactoryInitialization方法(实例化各种非懒加载单例对象)
看下Spring如何实例化bean,以及如何实现在bean的实例化通过各种各样的后置处理器完成bean的增强。1、入口是AbstractApplicationContext中的finishBeanFactoryInitialization(beanFactory);,源码如下,主要做了如下几件事:protected void finishBeanFactoryInitialization(ConfigurableListableBeanFactory beanFactory) { //原创 2021-11-19 00:15:31 · 230 阅读 · 0 评论 -
六、Spring IOC——唤醒BeanFacotryPostProcessor
什么是BeanFactoryPostProcessor?BeanFactoryPostProcessor是beanFactory的后置处理器;在BeanFactory标准初始化之后调用,这时所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建;因此可以通过BeanFactoryPostProcessor来获取和修改BeanFactory中bean配置元数据;一、唤醒BeanFacotryPostProcessor:refr...原创 2021-11-18 13:36:02 · 102 阅读 · 0 评论 -
五、Spring IOC——BeanDefinition的加载
一、BeanDefinition的加载:在Spring中,实际上是把DefaultListableBeanFactory作为一个默认的功能完整的IoC容器来使用的。我们通过编程式使用IoC容器可以更好地理解其原理:ClassPathResource res = new ClassPathResource(“beans.xml”);DefaultListableBeanFactory factory = new DefaultListableBeanFactory();XmlBeanDefinit原创 2021-11-18 13:32:23 · 358 阅读 · 0 评论 -
四、Spring IOC——容器启动的主要流程方法
一、Spring IOC容器启动的主要流程方法(AbstractApplicationContext中的refresh方法)如果应用直接使用ApplicationContext,以FileSystemXmlApplicationContext为例,在代码实现中可以看到其构造方法:public FileSystemXmlApplicationContext(String[] configLocations, boolean refresh, @Nullable Applicat原创 2021-11-18 13:25:51 · 482 阅读 · 0 评论 -
三、Spring IOC——IOC容器UML图
一、IOC容器相关UML图:在Spring IoC容器的设计中,主要有两条线路,一是实现BeanFactory接口的简单容器系列,这系列只实现了容器的基本功能,另一个是ApplicationContext应用上下文,它是容器的高级形态,增加了许多面向框架的特性,同时对应用环境做了许多适配。最常用的以Application应用上下文为核心的接口设计,主要涉及的接口有:ApplicationContext,WebApplicaionContext,ConfigurableAppicationCo.原创 2021-11-18 13:19:15 · 731 阅读 · 0 评论 -
二、Spring整体架构
1、Spring整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,可分为5类,如下图所示:从上图spring framework整体架构图可以看到,这些模块被总结为以下几个部分:1. Core Container(核心容器)Core Container(核心容器)包含有Core、Beans、Context和Expression Language模块;1)Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性。这里的基础...原创 2021-11-18 13:16:05 · 179 阅读 · 0 评论 -
一、什么是Spring
1、Spring是什么?Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻...原创 2021-11-18 13:12:52 · 332 阅读 · 0 评论