1. 程式人生 > >Spring原始碼解析之ConfigurableApplicationContext

Spring原始碼解析之ConfigurableApplicationContext

UML圖

介面的作用

從上面的UML圖中,可以看到 ConfigurableApplicationContext 直接繼承了 ApplicationContext, Lifecycle, Closeable 介面,所以 ApplicationContext 是 ApplicationContext 的子類。用過Spring或者看過Spring原始碼的,肯定都知道ApplicationContext這個介面。它的作用和名字一樣,就是應用程式上下文(說明起一個好名字是多麼重要),包含了程式上下文唯一ID,應用程式名稱等資訊。

Lifecycle 介面則是負責對 context 的生命週期進行管理,提供了 start()

stop() 以及 isRunning() 方法。

Closeable 介面是JDK提供的介面,用於關閉元件,釋放資源。

所以 ConfigurableApplicationContext 介面的作用就是設定上下文 ID,設定父應用上下文,新增監聽器,重新整理容器,關閉,判斷是否活躍等方法。其實簡單看一下 ApplicationContext 介面就會發現裡面之後get方法,沒有set方法,所以子介面就提供了set方法。

相關推薦

Spring原始碼解析ConfigurableApplicationContext

UML圖 介面的作用 從上面的UML圖中,可以看到 ConfigurableApplicationContext 直接繼承了 ApplicationContext, Lifecycle, Closeable 介面,所以 ApplicationContext 是 ApplicationContext 的子類

spring原始碼解析AOP原理

一、準備工作   在這裡我先簡單記錄下如何實現一個aop: AOP:【動態代理】 指在程式執行期間動態的將某段程式碼切入到指定方法指定位置進行執行的程式設計方式; 1、匯入aop模組;Spring AOP:(spring-aspects) 2、定義一個業務邏輯類(

Spring原始碼解析 Spring Security啟動細節和工作模式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Spring原始碼解析四(容器的功能擴充套件)

容器的功能擴充套件 1、概述 之前的文章中BeanFactory介面以及它的預設實現類XmlBeanFactory為例進行分析,但是Spring中還提供了另一個介面ApplicationContext,用於擴充套件BeanFactory中現有的功能。  ApplicationCon

Spring原始碼解析四(bean載入)

1、概述 已經分析了spring對於xml配置檔案的解析,接下來就是對bean的載入。 getBean的實現 public <T> T getBean(String name, Class<T> requiredType, Object... args) thro

Spring原始碼解析三(自定義標籤的解析

自定義標籤的解析 1、概述:通過前面的文章我們分析了預設標籤的解析,我們先回顧下自定義標籤解析所使用的方法 /** * Parse the elements at the root level in the document: * "import", "alias", "bean".

Spring原始碼解析二(預設標籤的解析

預設標籤解析 概述:本節重點詳細分析預設標籤的解析過程。接上一篇文章講到parseBeanDefinitions(root, delegate); /** * Parse the elements at the root level in the document: * "impor

Spring原始碼解析SpringMVC

1、說在前面的話 ①、在說springmvc之前先說一下與之相關的一些類與介面:ContextLoaderListener與ServletContextListener,ContextLoaderListener實現了ServletContextListener介面。 Context

Spring原始碼解析標籤的解析下篇

正文 上篇文章我們介紹了Spring預設標籤的解析,本文我們來分析一下Spring自定義標籤的解析。上篇文章我們瞭解到Spring的預設標籤目前有4個(import、alias、bean、beans),也就是說除了這4個標籤以外的標籤都是自定義標籤(當然這裡所說的標籤不包括

Spring原始碼解析ApplicationContext

閱讀須知 Spring原始碼版本:4.3.8 文章中使用/* */註釋的方法會做深入分析 正文 ApplicationContext applicationContext = new ClassPathXmlApplicationContext

Spring原始碼解析bean的建立

閱讀須知 Spring原始碼版本:4.3.8 文章中使用/* */註釋的方法會做深入分析 正文 之前我們都是在圍繞 ApplicationContext applicationContext = new ClassPathXmlApplicati

spring原始碼解析IOC容器(一)

  學習優秀框架的原始碼,是提升個人技術水平必不可少的一個環節。如果只是停留在知道怎麼用,但是不懂其中的來龍去脈,在技術的道路上註定走不長遠。最近,學習了一段時間的spring原始碼,現在整理出來,以便日後溫故知新。   IOC容器是spring最核心的模組之一,是整個spring體系的基石,spring其

spring原始碼解析IOC容器(二)------載入和註冊

  上一篇跟蹤了IOC容器對配置檔案的定位,現在我們繼續跟蹤程式碼,看看IOC容器是怎麼載入和註冊配置檔案中的資訊的。開始之前,首先我們先來了解一下IOC容器所使用的資料結構-------BeanDefinition,它是一個上層介面,有很多實現類,分別對應不同的資料載體。我們平時開發的時候,也會定義很多po

spring原始碼解析IOC容器(三)——依賴注入

  上一篇主要是跟蹤了IOC容器對bean標籤進行解析之後存入Map中的過程,這些bean只是以BeanDefinition為載體單純的儲存起來了,並沒有轉換成一個個的物件,今天繼續進行跟蹤,看一看IOC容器是怎樣例項化物件的。   我們都使用過以下程式碼: 1 FileSystemXmlApplicati

Spring原始碼解析@Configuration

@Configuration簡介 用於標識一個類為配置類,與xml配置效果類似 用法簡介 public class TestApplication { public static void main(String args[]) { AnnotationConfigApplicati

Spring原始碼解析基礎應用(二)

方法注入 在spring容器中,大部分bean的作用域(scope)是單例(singleton)的,少部分bean的作用域是原型(prototype),如果一個bean的作用域是原型,我們A bean的作用域是原型,B bean中以@Autowired的方式注入A,那麼B在A中依舊是單例。我們可以讓B類實現A

Spring原始碼解析基礎應用(三)

組合Java配置 在XML中,我們可以使用<import/>標籤,在一個XML檔案中引入另一個XML檔案,在Java類中,我們同樣可以在一個配置類中用@Import引入另一個配置類,被引入的配置類中的@Bean也會載入到spring容器。程式碼如下: @Configuration public

Spring原始碼解析BeanFactoryPostProcessor(一)

BeanFactoryPostProcessor 在前面幾個章節,筆者有介紹過BeanFactoryPostProcessor,在spring在解析BeanDefinition之後,正式初始化bean之前,會回撥我們編寫的BeanFactoryPostProcessor介面,介面會傳入beanFactory物

Spring原始碼解析BeanFactoryPostProcessor(二)

上一章,我們介紹了在AnnotationConfigApplicationContext初始化的時候,會建立AnnotatedBeanDefinitionReader和ClassPathBeanDefinitionScanner兩個物件: public class AnnotationConfigAppli

Spring-web原始碼解析Filter-OncePerRequestFilter

轉自:  http://blog.csdn.net/ktlifeng/article/details/50630934 基於4.1.7.RELEASE 我們先看一個filter-mapping的配置