欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven依賴中scope的runtime和provied的區(qū)別及說明

 更新時間:2023年11月13日 17:08:02   作者:fomeiherz  
這篇文章主要介紹了Maven依賴中scope的runtime和provied的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Maven依賴中scope的runtime和provied的區(qū)別

<scope>runtime</scope>

runtime 用在 Class.forName(“com.mysql.jdbc.Driver”) 時,compile 編譯時不依賴,只有運行時才會依賴。

案例:

當嘗試去把 compile -> runtime 后,無法編譯成功,因為 runtime 只在運行時使用,編譯時不引入,造成有些依賴無法加入。

<scope>provied</scope>

只有編譯會使用,程序運行時不需要依賴的。

案例一:

lombok 只在編譯時,把 getter、setter 設(shè)置好,不需要運行時使用。

案例二:

servlet-api 只在編譯時,需要引入,運行時由 tomcat 容器提供。

maven scope provided和runtime的例子

maven常用的scope有compile,provided,runtime,test。

  • complie

是默認值,表示在build,test,runtime階段的classpath下都有依賴關(guān)系。

  • test

表示只在test階段有依賴關(guān)系,例如junit

  • provided

表示在build,test階段都有依賴,在runtime時并不輸出依賴關(guān)系而是由容器提供,例如web war包都不包括servlet-api.jar,而是由tomcat等容器來提供

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
  • runtime

表示在構(gòu)建編譯階段不需要,只在test和runtime需要。

這種主要是指代碼里并沒有直接引用而是根據(jù)配置在運行時動態(tài)加載并實例化的情況。

雖然用runtime的地方改成compile也不會出大問題,但是runtime的好處是可以避免在程序里意外地直接引用到原本應該動態(tài)加載的包。

例如JDBC連接池:

		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
			<scope>runtime</scope>
		</dependency>

spring applicationContext.xml

	<!-- mysql -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
	</bean>
	<!-- Connection Pool -->
	<bean id="dataSource" destroy-method="close"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${ckm.jdbc.driver}" />
		<property name="url" value="${ckm.jdbc.url}" />
		<property name="username" value="${ckm.jdbc.username}" />
		<property name="password" value="${ckm.jdbc.password}" />
		<property name="initialSize" value="6" />
	</bean>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea集成shell運行環(huán)境以及shell輸出中文亂碼的解決

    idea集成shell運行環(huán)境以及shell輸出中文亂碼的解決

    這篇文章主要介紹了idea集成shell運行環(huán)境以及shell輸出中文亂碼的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java9學習筆記之模塊化詳解

    java9學習筆記之模塊化詳解

    Java 9中最重要的功能,毫無疑問就是模塊化(Module),下面這篇文章主要給大家介紹了關(guān)于java9學習筆記之模塊化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • 淺談Java中hashCode的正確求值方法

    淺談Java中hashCode的正確求值方法

    這篇文章主要介紹了淺談Java中hashCode的正確求值方法,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java常用類String的面試題匯總(java面試題)

    Java常用類String的面試題匯總(java面試題)

    這篇文章主要介紹了Java常用類String的面試題匯總,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • java GUI實現(xiàn)五子棋游戲

    java GUI實現(xiàn)五子棋游戲

    這篇文章主要為大家詳細介紹了java GUI實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Java使用組件編寫窗口實現(xiàn)網(wǎng)上文件下載

    Java使用組件編寫窗口實現(xiàn)網(wǎng)上文件下載

    這篇文章主要為大家詳細介紹了Java使用組件編寫窗口實現(xiàn)網(wǎng)上文件下載的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 如何通過Java實現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    如何通過Java實現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片

    在Java中,將PDF文件轉(zhuǎn)換為高質(zhì)量的圖片可以使用不同的庫,其中最常用的庫之一是?Apache?PDFBox,下面我們就來看看這個庫的具體使用吧
    2024-10-10
  • 手擼一個Spring?Boot?Starter并上傳到Maven中央倉庫

    手擼一個Spring?Boot?Starter并上傳到Maven中央倉庫

    本文主要介紹了手擼一個Spring?Boot?Starter并上傳到Maven中央倉庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Java使用動態(tài)規(guī)劃算法思想解決背包問題

    Java使用動態(tài)規(guī)劃算法思想解決背包問題

    背包問題(Knapsack problem)是一種組合優(yōu)化的NP完全問題。問題可以描述為:給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內(nèi),我們?nèi)绾芜x擇,才能使得物品的總價格最高
    2022-04-04
  • Spring框架中的@Conditional系列注解詳解

    Spring框架中的@Conditional系列注解詳解

    這篇文章主要介紹了Spring框架中的@Conditional系列注解詳解,我們需要一個類實現(xiàn)Spring提供的Condition接口,它會匹配@Conditional所符合的方法,然后我們可以使用我們在@Conditional注解中定義的類來檢查,需要的朋友可以參考下
    2024-01-01

最新評論