激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - 測試同學上手Spring 之IoC深入解析

測試同學上手Spring 之IoC深入解析

2021-03-17 01:07今日頭條測試開發Kevin JAVA教程

想要理解Spring,必須要掌握的兩個知識點就是IoC和AOP,在這里我首先帶大家了解一下什么是IoC。為大家上手Sping編碼做好前期最充分的知識儲備,做到有的放矢!

測試同學上手Spring 之IoC深入解析

想要理解Spring,必須要掌握的兩個知識點就是IoC和AOP,在這里我首先帶大家了解一下什么是IoC。為大家上手Sping編碼做好前期最充分的知識儲備,做到有的放矢!

Spring Hello World 回顧

在Hello Spring實例中我們定義了類

public class HelloSpring { 

    private String name="hello"

    HelloSpring(){ 

     System.out.println("Hello Spring"); 

    }  

    public String getName() { 

        return this.name ; 

    }     

    public void setName(String name) { 

        this.name = name

    } 

配置文件中的配置信息如下:

調用HelloSpring中的getName方法代碼如下:

public static void main(String[] args) { 

ApplicationContextcontext = new ClassPathXmlApplicationContext("beans1.xml"); 

HelloSpringhello = (HelloSpring) context.getBean("hellospring"); 

           System.out.println(hello.getName()); 

        } 

運行結果如下:

Hello Spring //構造函數中輸出的值 

 

Hello //getName方法中輸出的值 

詳細可以參考文章 測試同學從0到1上手Spring

IOC解讀

我們可以看到spring并沒有new 實例的過程,但是完成了實例化的操作,并成功地調用了getName方法。這就是Spring中的控制反轉技術(IoC)。

Spring通過一種稱作控制反轉(Inversion of Control —IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。也就是說Spring控制了對象的生成,應用程序不再需要主動創建對象了!

我們通常說的SpringIoC,實際上是指Spring框架提供的IoC容器實現(IoC Container)。

Spring 的 IoC 容器中發生的事情其實也很簡單,總結下來即兩個階段:

采摘和收集“咖啡豆”(bean)

研磨和烹飪咖啡

第一個階段可以認為是構建和收集 bean 定義的階段,在這個階段中,我們可以通過 XML 或者 Java 代碼的方式定義一些 bean,然后通過手動組裝或者讓容器基于某些機制自動掃描的形式,將這些 bean 定義收集到 IoC 容器中。我們通常通過在xml文件中定義bean,然后容器再將這些bean收集到IoC容器中。當第一階段工作完成后,我們可以先暫且認為 IoC 容器中充斥著一個個獨立的 bean,它們之間沒有任何關系。但實際上,它們之間是有依賴關系的,所以,IoC容器在第二階段要干的事情就是分析這些器已經在 IoC 容器之中的 bean,然后根據它們之間的依賴關系先后組裝它們。如果 IoC 容發現某個 bean 依賴另一個 bean,它就會將這另一個 bean 注入給依賴它的那個 bean,直到所有 bean 的依賴都注入完成,所有 bean 都“整裝待發”,整個 IoC 容器的工作即算完成。

IOC基本運行流程如下圖所示:

測試同學上手Spring 之IoC深入解析

Spring 啟動時讀取應用程序提供的Bean配置信息,并在Spring容器中生成一份相應的Bean配置注冊表,然后根據這張注冊表實例化Bean,裝配好Bean之間的依賴關系,為上層應用提供準備就緒的運行環境。

IOC深入理解

IoC容器

實現了IoC思想的容器就是IoC容器。IoC容器功能包括:實例化、初始化組件、裝配組件依賴關系、負責組件生命周期管理。

IoC容器特點

無需主動new對象;而是描述對象應該如何被創建即可。IoC容器幫你創建,即被動實例化;

不需要主動裝配對象之間的依賴關系,而是描述需要哪個服務(組件),IoC容器會幫你裝配(即負責將它們關聯在一起),被動接受裝配;

IoC是一種讓服務消費者不直接依賴于服務提供者的組件設計方式,是一種減少類與類之間依賴的設計原則。

理解IoC容器問題關鍵:控制的哪些方面被反轉了?

1、誰控制誰?為什么叫反轉? IoC容器控制,而以前是應用程序控制,所以叫反轉

2、控制什么?控制應用程序所需要的資源(對象、文件……)

3、為什么控制?解耦組件之間的關系

4、控制的哪些方面被反轉了?程序的控制權發生了反轉:從應用程序轉移到了IoC容器。

使用IoC容器開發需要改變的思路

1、應用程序不主動創建對象,但要描述創建它們的方式。

2、在應用程序代碼中不直接進行服務的裝配,但要配置文件中描述哪一個組件需要哪一項服務。容器負責將這些裝配在一起。

最通俗的解釋

所有的類都會在spring容器中登記,告訴spring你是個什么東西,你需要什么東西,然后spring會在系統運行到適當的時候,把你要的東西主動給你,同時也把你交給其他需要你的東西。所有的類的創建、銷毀都由 spring來控制,也就是說控制對象生存周期的不再是引用它的對象,而是spring。對于某個具體的對象而言,以前是它控制其他對象,現在是所有對象都被spring控制,所以這叫控制反轉。

原文地址:https://www.toutiao.com/i6939744942810071563/

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产一级毛片视频在线! | 久久第四色 | 精品一二三区视频 | 欧美视频一二三区 | 奶子吧naiziba.cc免费午夜片在线观看 | 成人福利免费在线观看 | 免费看日产一区二区三区 | 特片网久久| 欧美精品国产综合久久 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 久久久中 | 亚洲国产精品二区 | free性欧美hd另类 | qyl在线视频精品免费观看 | 成人免费网站在线观看视频 | 久久久久久久久亚洲精品 | av在线在线 | 在线a| 91热久久免费频精品黑人99 | 免费国产一区二区视频 | 精品一区二区三区免费看 | 午夜激情视频网站 | 日日狠狠久久偷偷四色综合免费 | 一本色道久久99精品综合蜜臀 | 青青青在线免费 | 黑色丝袜美美女被躁视频 | 日本中文一级片 | www.com超碰 | 一级免费在线视频 | 5xx免费看| 极品xxxx欧美一区二区 | 成人一级视频在线观看 | 亚洲精品aa | 欧美一级做一级爱a做片性 91在线视频观看 | 国产精品jk白丝蜜臀av软件 | 国产成人精品一区二区视频免费 | 色人阁在线视频 | 欧美日韩国产一区二区三区在线观看 | 久草视频手机在线观看 | 九一免费版在线观看 | 国产亚洲精品综合一区91 |