傳遞性依賴

2022-09-08 07:57:10 字數 3544 閱讀 9563

**:

1. 傳遞性依賴

m**en的傳遞性依賴機制可以很好的解決這一問題。我們還是以helloworld專案為例。我們可以從eclipse建立spring-helloworld專案過程與m**en建立spring-helloworld專案過程看出差別來:

(1)eclipse建立spring-helloworld專案:

(2)m**en建立spring-helloworld專案:

但是使用m**en方式我們只需要知道sring framework的jar即可,不需要知道其所需要commons-logging等jar包。

xsi:schemalocation=" ">

4.0.0

com.sjf.springdemo

springdemo-helloworld

0.0.1-snapshot

jar

springdemo-helloworld

utf-8

junit

junit

3.8.1

test

org.springframework

spring

2.5.6

xsi:schemalocation=" ">

4.0.0

com.sjf.springdemo

springdemo-helloworld

0.0.1-snapshot

jar

springdemo-helloworld

utf-8

junit

junit

3.8.1

test

org.springframework

spring-context

4.2.4.release

org.springframework

spring-core

4.2.4.release

其以上**是專案配置的依賴,從上面可以看出我們只依賴了spring framework的jar,並沒有依賴commons-logging。

但是我們從m**en專案上看到m**en的依賴:

從上面可以看出我們雖然只依賴了spring framework的jar,並沒有依賴其他類庫的jar,但是專案還是出現了其他的jar。這就是傳遞性依賴的作用。

下圖是上面例項專案的依賴演示圖:

那到底什麼是傳遞性依賴呢?

傳遞性依賴是在m**en2中新增的新特徵,這個特徵的作用就是你不需要考慮你依賴的庫檔案所需要依賴的庫檔案,能夠將依賴模組的依賴自動的引入。

例如我們依賴於spring的庫檔案,但是spring本身也有依賴,如果沒有傳遞性依賴那就需要我們了解spring專案依賴,自己新增到我們的專案中。

有了傳遞性依賴機制,在使用spring framework的時候就不用去考慮它依賴了什麼,也不用擔心引入多餘的依賴。m**en會解析各個直接依賴的pom,將那些必要的間接依賴,以傳遞性依賴的形式引入到當前的專案中。

2.傳遞性依賴與依賴範圍

依賴範圍不僅可以控制依賴與三種classpath的關係,還對傳遞性依賴產生影響。上面例子中,springdemo-helloworld對於spring-core的依賴範圍是compile,spring-core對於commons-logging的依賴範圍是compile,那麼springdemo-helloworld對於commons-logging這一傳遞性依賴的範圍也就是compile。假設a依賴於b,b依賴於c,我們說a對於b是第一直接依賴,b對c是第二直接依賴,a對於c是傳遞性依賴。第一直接依賴的範圍和第二直接依賴的範圍決定了傳遞性依賴的範圍。

最左邊一行表示第一直接依賴範圍,最上面一行表示第二直接依賴範圍,中間的交叉單元格則表示傳遞性依賴範圍。

compile

test

provided

runtime

compile

compile

------

runtime

test

test

------

test

provided

provided

---provided

provided

runtime

runtime

------

runtime

仔細觀察上面**,我們發現這樣的規律:

繼承的傳遞性

person 靜態 sname,gender,height,age,mobile,email 動態 run sleep 派生出 中國人 日本人 美國人 chinese person 動態 say 說中文 chinesestudent chinese pass 基類class person def i...

上下文的傳遞性

當dax表示式內需要對多個表單中的內容進行計算時,需要特別注意上下文的傳遞性。行上下文關係在表之間不具有自動傳播性。例如bike表和sales表之間是一對多的關聯關係,如果想計算每種產品的銷售額,直接使用sales volume bike price 進行計算時power bi會報錯,提示無法獲取當...

利用集群和傳遞性降低眾包實體解析的成本

lisha guo beihang university guols act.buaa.edu.cn hailong sun beihang university sunhl act.buaa.edu.cn xudong liu beihang university liuxd act.buaa.e...