最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、 IOC 的概念

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

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

Spring 通過 Java 語言的反射機制實現(xiàn)實例化 Bean ,并建立 Bean 之間的依賴關(guān)系。

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

二、 高層視圖

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

在這里插入圖片描述

三、 實現(xiàn)

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

BeanFactory

在這里插入圖片描述

BeanDefinitionRegistry 注冊表

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

BeanFactory

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

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

ApplicationContext

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

比如從類路徑加載配置文件等 …

在這里插入圖片描述

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

作用域

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

生命周期

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

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

相關(guān)文章

  • 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • Java 如何快速,優(yōu)雅的實現(xiàn)導(dǎo)出Excel

    Java 如何快速,優(yōu)雅的實現(xiàn)導(dǎo)出Excel

    這篇文章主要介紹了Java 如何快速,優(yōu)雅的實現(xiàn)導(dǎo)出Excel,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 使用idea創(chuàng)建web框架和配置struts的方法詳解

    使用idea創(chuàng)建web框架和配置struts的方法詳解

    這篇文章主要介紹了使用idea創(chuàng)建web框架和配置struts的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 基于Comparator對象集合實現(xiàn)多個條件按照優(yōu)先級的比較

    基于Comparator對象集合實現(xiàn)多個條件按照優(yōu)先級的比較

    這篇文章主要介紹了基于Comparator對象集合實現(xiàn)多個條件按照優(yōu)先級的比較,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java基于自定義類加載器實現(xiàn)熱部署過程解析

    Java基于自定義類加載器實現(xiàn)熱部署過程解析

    這篇文章主要介紹了Java基于自定義類加載器實現(xiàn)熱部署過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • JUnit測試控制@Test執(zhí)行順序的三種方式小結(jié)

    JUnit測試控制@Test執(zhí)行順序的三種方式小結(jié)

    這篇文章主要介紹了JUnit測試控制@Test執(zhí)行順序的三種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 解析Java實現(xiàn)隨機驗證碼功能的方法詳解

    解析Java實現(xiàn)隨機驗證碼功能的方法詳解

    本篇文章是對Java實現(xiàn)隨機驗證碼功能的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • MyBatis 中 SqlMapConfig 配置文件詳解

    MyBatis 中 SqlMapConfig 配置文件詳解

    這篇文章主要介紹了MyBatis 中 SqlMapConfig 配置文件詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java超詳細(xì)講解類的繼承

    Java超詳細(xì)講解類的繼承

    繼承就是可以直接使用前輩的屬性和方法。自然界如果沒有繼承,那一切都是處于混沌狀態(tài)。多態(tài)是同一個行為具有多個不同表現(xiàn)形式或形態(tài)的能力。多態(tài)就是同一個接口,使用不同的實例而執(zhí)行不同操作
    2022-04-04
  • java實現(xiàn)字符與Unicode碼轉(zhuǎn)換(附源碼)

    java實現(xiàn)字符與Unicode碼轉(zhuǎn)換(附源碼)

    在 Java 開發(fā)中,經(jīng)常需要在字符(char 或 String)與其對應(yīng)的Unicode 碼點(int)之間進(jìn)行相互轉(zhuǎn)換,下面小編就來和大家詳細(xì)介紹一下具體實現(xiàn)方法吧
    2025-07-07

最新評論

吴江市| 宁南县| 深泽县| 安阳市| 营山县| 镇赉县| 永善县| 巴东县| 南部县| 巴南区| 和硕县| 纳雍县| 延津县| 峡江县| 马鞍山市| 宁安市| 山东省| 垫江县| 台北市| 石城县| 错那县| 蒙阴县| 崇信县| 巨野县| 曲松县| 乌鲁木齐市| 襄城县| 余庆县| 富锦市| 雅江县| 常熟市| 郁南县| 布拖县| 岳阳市| 南雄市| 山西省| 油尖旺区| 北辰区| 介休市| 冀州市| 财经|