創(chuàng)建一個(gè)maven工程,引入spring-context包。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.8.RELEASE</version> </dependency>
此時(shí)看左側(cè)的lib,我們發(fā)現(xiàn)引入了一個(gè)坐標(biāo),多出了很多的jar包,這個(gè)現(xiàn)象叫做依賴(lài)傳遞,就是說(shuō),當(dāng)前坐標(biāo)所依賴(lài)的jar包也會(huì)一同引入進(jìn)來(lái),這里的版本都是5.0.8的。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.4.RELEASE</version> </dependency>
我們通過(guò)idea給的maven分析圖可以看出,mvc和context都依賴(lài)與sprng-core一個(gè),依賴(lài)的是5.0.8版本,一個(gè)依賴(lài)的是4.2.4版本。
此時(shí)我們的pom文件中是先聲明的5.0.8版本,后聲明的4.2.4版本,我們將其調(diào)換順序。
比如,我們不想調(diào)換順序,我們就是想使用4.2.4版本的spring-core。我們可以單獨(dú)引入進(jìn)來(lái)。
這種方式我們可以直接排除spring-context中的spring-core的傳遞依賴(lài)。