欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringIOC控制反轉(zhuǎn)的原理詳解

 更新時(shí)間:2023年08月17日 08:29:31   作者:劉婉晴  
這篇文章主要介紹了SpringIOC控制反轉(zhuǎn)的原理詳解,本來(lái)管理業(yè)務(wù)對(duì)象(bean)的操作是由我們程序員去做的,但是有了?Spring?核心容器后,這些?Bean?對(duì)象的創(chuàng)建和管理交給我們Spring容器去做了,也就是控制權(quán)由程序員變成了容器,需要的朋友可以參考下

一、 IOC 的概念

Spring 的 IOC ,即控制反轉(zhuǎn)

所謂控制反轉(zhuǎn) —— 本來(lái)管理業(yè)務(wù)對(duì)象(bean)的操作是由我們程序員去做的,但是有了 Spring 核心容器后,這些 Bean 對(duì)象的創(chuàng)建和管理交給我們Spring容器去做了,也就是控制權(quán)由程序員變成了容器。

Spring 通過(guò) Java 語(yǔ)言的反射機(jī)制實(shí)現(xiàn)實(shí)例化 Bean ,并建立 Bean 之間的依賴(lài)關(guān)系。

除此之外,Spring IOC 還提供 Bean 實(shí)例緩存,生命周期管理,Bean 實(shí)例代理等高級(jí)服務(wù)。

二、 高層視圖

Spring 應(yīng)用啟動(dòng)時(shí),讀取 Bean配置信息,在容器中生成注冊(cè)表,然后根據(jù)注冊(cè)表去實(shí)例化 Bean,再將實(shí)例化好的 Bean 放入 Spring 容器的 Bean 緩存池中,為上層應(yīng)用程序使用。

在這里插入圖片描述

三、 實(shí)現(xiàn)

BeanFactory 面向 Spring 本身, ApplicationContext 面向使用 Spring 框架的開(kāi)發(fā)者。

BeanFactory

在這里插入圖片描述

BeanDefinitionRegistry 注冊(cè)表

Spring 配置的每一個(gè) Bean 通過(guò) BeanDefination 表示,描述了 Bean 的配置信息,BeanDefinitionRegistry 提供了向容器中注冊(cè) BeanDefination 的方法。

BeanFactory

getBean() 從容器中獲取指定名稱(chēng)的 Bean

  • ListableBeanFactory : 提供訪問(wèn)容器 Bean 信息的方法
  • HierarchicalBeanFactory : 父子級(jí)聯(lián) ,實(shí)現(xiàn)子容器可以訪問(wèn)父容器的 Bean,但是父容器不能訪問(wèn)子容器的 Bean
  • ConfifurableBeanFactory : 增強(qiáng)了IOC容器的定制性。
  • SingletonBeanFactory : 允許運(yùn)行時(shí)向容器中注冊(cè)單例 Bean

ApplicationContext

ApplicationContext 由 BeanFactory 派生而來(lái),提供了更多面向?qū)嶋H應(yīng)用的功能

比如從類(lèi)路徑加載配置文件等 …

在這里插入圖片描述

四、 Bean 的作用域和生命周期

作用域

  • Singleton : 單例模式,全局只有一個(gè)對(duì)象,多線程下不安全
  • Prototype : 原型模式,在每次使用時(shí)創(chuàng)建,每個(gè) Bean 有自己的屬性和狀態(tài)
  • Request : 一次 Request 中一個(gè)實(shí)例
  • Session
  • Global Session

生命周期

  • 實(shí)例化
  • IOC 依賴(lài)注入
  • setBeanName
  • BeanFactoryAware
  • ApplicationContentAware
  • 接口實(shí)現(xiàn)-初始化預(yù)處理
  • 初始化方法
  • postProcessAfterInitialization
  • 過(guò)期自動(dòng)清理/自動(dòng)配置清理

到此這篇關(guān)于SpringIOC控制反轉(zhuǎn)的原理詳解的文章就介紹到這了,更多相關(guān)SpringIOC控制反轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ehcache模糊批量移除緩存的方法

    ehcache模糊批量移除緩存的方法

    本篇文章主要介紹了ehcache模糊批量移除緩存的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • SpringMVC訪問(wèn)靜態(tài)資源的方法

    SpringMVC訪問(wèn)靜態(tài)資源的方法

    本篇文章主要介紹了SpringMVC訪問(wèn)靜態(tài)資源的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Java實(shí)現(xiàn)經(jīng)典大富翁游戲的示例詳解

    Java實(shí)現(xiàn)經(jīng)典大富翁游戲的示例詳解

    大富翁,又名地產(chǎn)大亨。是一種多人策略圖版游戲。參與者分得游戲金錢(qián),憑運(yùn)氣(擲骰子)及交易策略,買(mǎi)地、建樓以賺取租金。本文將通過(guò)Java實(shí)現(xiàn)這一經(jīng)典游戲,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-02-02
  • Java編碼輔助工具M(jìn)apstruct用法詳解

    Java編碼輔助工具M(jìn)apstruct用法詳解

    這篇文章主要介紹了Java編碼輔助工具M(jìn)apstruct用法詳解,手動(dòng)編碼setter/getter各個(gè)對(duì)應(yīng)屬性,會(huì)顯得臃腫繁瑣。通過(guò)Mapstruct框架可簡(jiǎn)單方便地完成這一工作。,需要的朋友可以參考下
    2019-06-06
  • Java中UUID生成原理及優(yōu)缺點(diǎn)

    Java中UUID生成原理及優(yōu)缺點(diǎn)

    本文將詳細(xì)講解UUID的生成原理、特性、實(shí)用場(chǎng)景以及優(yōu)缺點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringCloud中的Eureka注冊(cè)中心詳細(xì)解讀

    SpringCloud中的Eureka注冊(cè)中心詳細(xì)解讀

    這篇文章主要介紹了SpringCloud中的Eureka注冊(cè)中心詳細(xì)解讀,想要參與服務(wù)注冊(cè)發(fā)現(xiàn)的實(shí)例首先需要向Eureka服務(wù)器注冊(cè)信息,注冊(cè)在第一次心跳發(fā)生時(shí)提交,需要的朋友可以參考下
    2023-11-11
  • Springboot ApplicationRunner的使用解讀

    Springboot ApplicationRunner的使用解讀

    這篇文章主要介紹了Springboot ApplicationRunner的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java?Spring?事件監(jiān)聽(tīng)詳情解析

    Java?Spring?事件監(jiān)聽(tīng)詳情解析

    這篇文章主要介紹了Java?Spring?事件監(jiān)聽(tīng)詳情解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • mybatis中<if>標(biāo)簽bool值類(lèi)型為false判斷方法

    mybatis中<if>標(biāo)簽bool值類(lèi)型為false判斷方法

    這篇文章主要給大家介紹了關(guān)于mybatis中<if>標(biāo)簽bool值類(lèi)型為false判斷方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mybatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java編程線程間通信與信號(hào)量代碼示例

    Java編程線程間通信與信號(hào)量代碼示例

    這篇文章主要介紹了Java編程線程間通信與信號(hào)量代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論