1. 程式人生 > >Spring 原始碼分析-----委派模式(不關心過程,只關心結果)

Spring 原始碼分析-----委派模式(不關心過程,只關心結果)

兩個角色,受託人、委託人(社會上是平等關係)
公司裡面:專案經理,普通員工(法律上是平等的,工作的關係,各自的職責會不一樣)
幹活是我的,功勞是你的(最重要的特點)
專案經理(委託人):主要職責是安排任務
普通員工(受託人):執行任務
委派模式的特點:
    1、類似於中介的功能(委託機制)
    2、持有被委託人的引用
    3、不關心過程,只關心結果

主要目的:隱藏具體實現邏輯
IOC容器中,有一個Register的東西(為了告訴我們的容器,在這個類被初始化的過程中,需要做很多不同的邏輯處理,需要實現多個任務執行者,分別實現各自的功能)

相關推薦

Spring 原始碼分析-----委派模式關心過程關心結果

兩個角色,受託人、委託人(社會上是平等關係) 公司裡面:專案經理,普通員工(法律上是平等的,工作的關係,各自的職責會不一樣) 幹活是我的,功勞是你的(最重要的特點) 專案經理(委託人):主要職責是安排任

Spring 原始碼分析(三) —— AOPAOP原理

AOP概論         AOP(Aspect-Oriented Programming,面向切面的程式設計),談起AOP,則一定會追溯到OOP(Object Oriented Programming,面向物件程式設計),因為AOP可以說是對OOP的補充和完善,而這一切的

Spring 原始碼分析(三) —— AOPSpring AOP 整體架構

Spring AOP 架構         先是生成代理物件,然後是攔截器的作用,最後是編織的具體實現。這是AOP實現的三個步驟,當然Spring AOP也是一樣。         而從Spring AOP整體架構上看,其核心都是建立在代理上的。當我們建立增強例項時,我們

spring原始碼分析---策略模式

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.ut

Spring 原始碼分析(四) ——MVC原始碼入口

測試程式碼         框架配置         現在就從 SpringMVC 的網站開發開始。當然,最先是用 Mavan 下載所需的 jar。下面是 pom.xml 配置: <project xmlns="http://maven.apache.org/

Spring原始碼分析之IOC

前面已經分析ObtainFreshBeanfactory()這個方法是解析和註冊bean,例項化IOC容器的。 重新看一下refresh()方法 @Override public void refresh() throws BeansExcept

Spring原始碼分析之IOC

前面分析了finishBeanFactoryInitialization();留一下了doGetBean()這個方法,由於這個方法是Spring IOC的例項化真正工作的方法,所以特地拿出來單獨來說。 doGetBean()方法太長,下面截圖按照順序剪下來的話

設計模式委派模式屬於23種經典設計模式之一

介紹 標準定義:委派模式的原理為類B和類A是兩個互相沒有任何關係的類,B具有和A一模一樣的方法和屬性,並且呼叫B中的方法、屬性就是呼叫A中同名的方法和屬性。B好像就是一個受A授權委託的中介。第三方的程式碼不需要知道A的存在,也不需要和A發生直接的聯絡,通過B就

spring原始碼分析---策略模式、原型模式、模板模式

策略模式 —–> 用於回撥處理 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; p

學術寫作利器——LaTeX入門筆記整理定期更新附加使用心得

LaTeX入門教程(上)比Word更適合學術寫作的編纂語言Credit:講座是敝系的幾個技術宅辦的,作者只負責記錄和整理。後面的更新是個人心得。寫這篇日誌的初衷是小圈子分享和個人心得記錄,適合完全不瞭解tex的入門者閱讀,我的水平有限所以肯定有所疏漏,歡迎提出建議。具體使用

設計模式-裝飾者模式問題比較大需要重新處理

設計原則:類應該對擴充套件開放,對修改關閉。在不修改現有程式碼的情況下,拓展,搭配新的行為。設計更加彈性應對改變,可以接受新的功能應對改變的需求。 遵循開放關閉原則會引入程式碼抽象層次,增加程式碼的複雜度。我們的注意力是在於設計中最有可能發生改變的地方,然後應用開放關閉原

使用MyBatis(八)一對一關聯巢狀查詢巢狀結果

1.建立2張表,建立主外來鍵關係 2.建立實體類 package com.yw.test06; public class Class { private int id; private

spring原始碼分析重新認識spring內功心法 從思想上說明 spring 常用的幾種設計模式漫談

動態代理:關注過程,關注的是整體的區域性,面向的切面思想。 抽象工廠:關注的是結果,隱藏實現 單例模式:整個環境內只有一個類,有餓漢和懶漢,餓漢即 類載入直接new 物件,懶漢 即使用的時候才new物件,比較有名的有 雙檢索 單例,因為直接用同步限制會導致每次取物件都是同步

Spring原始碼分析4---BeanFactoryPostProcessor看見的一定是真的

在第二編對BeanFactory的分析中,我們老能看見BeanFactoyPostProcessor的身影,那麼在這一節中,我們來詳細的討論一下BeanFactoryPostProcessor的程式碼結構,從中學習他的優秀之處;BeanFactoryPostProcessor

Spring原始碼分析——常用設計模式

代理模式:事情必須做,而自己沒有時間做或者不想做。必須持有被代理物件的引用。包括靜態代理和動態代理兩種代理方式。生活中的場景如火車票代買、簽證辦理等一系列中介類似的活動。在Spring中的體現有JDK動

Spring原始碼分析——除錯環境搭建可能是最省事的構建方法

1. 依賴工具 idea git jdk 1.8 + Gradle 2. 獲取原始碼   從github https://github.com/spring-projects/spring-framework 上 Fork 出屬於自己的倉庫。如果懶得這麼做也可以

Spring原始碼分析IoC容器的實現1

    Ioc(Inversion of Control)——“控制反轉”,不是什麼技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。理解好Ioc的關鍵是要明確“誰控制誰,控制什麼,為何是反轉(有

spring原始碼分析】IOC容器初始化

前言:在【spring原始碼分析】IOC容器初始化(一)中已經分析了匯入bean階段,本篇接著分析bean解析階段。 1.解析bean程式呼叫鏈 同樣,先給出解析bean的程式呼叫鏈: 根據程式呼叫鏈,整理出在解析bean過程中主要涉及的類和相關方法。 2.解析bean原始碼分

Spring原始碼分析IoC容器的依賴注入2

protected void populateBean(String beanName, RootBeanDefinition mbd, BeanWrapper bw) { //這裡取得在BeanDefinition中設定的property值,這些property來自對BeanDefini

Spring原始碼分析IoC容器的依賴注入1

    依賴注入的過程是使用者第一次向IoC容器索要Bean時才觸發的,當然也有例外,可以在BeanDefinition資訊中通過控制lazy-init屬性來讓容器完成對Bean的預例項化。這個預例項化實際上也是一個完成依賴注入的過程,但它是在初始化的過程中完成的。