使用Maven配置Spring的方法步驟
這篇文章說(shuō)明了如何通過(guò)Maven配置Spring依賴項(xiàng)。最新的Spring版本可以在Maven Central上找到。
Maven中的Spring基本依賴關(guān)系
Spring的設(shè)計(jì)是高度模塊化的 - 使用Spring的一部分不應(yīng)該而且不需要另一部分。例如,基本的Spring Context可以沒有Persistence或MVC Spring庫(kù)。
讓我們先從一個(gè)基本Maven配置,將只使用了spring-context依賴:
<properties> <org.springframework.version>3.2.8.RELEASE</org.springframework.version> <!-- <org.springframework.version>4.0.2.RELEASE</org.springframework.version> --> </properties> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> <scope>runtime</scope> </dependency>
這個(gè)依賴項(xiàng) - spring-context - 定義了實(shí)際的Spring Injection Container,并且有少量的依賴項(xiàng):spring-core,spring-expression,spring-aop和spring-beans。通過(guò)支持一些核心Spring技術(shù)來(lái)擴(kuò)充容器:Core Spring實(shí)用程序,Spring表達(dá)式語(yǔ)言(SpEL),面向?qū)ο缶幊讨С?/a>和JavaBeans機(jī)制。
注意我們?cè)谶\(yùn)行時(shí)范圍中定義了依賴關(guān)系- 這將確保在任何特定于Spring的API上沒有編譯時(shí)依賴性。對(duì)于更高級(jí)的用例,可以從一些選定的Spring依賴項(xiàng)中刪除運(yùn)行時(shí)范圍,但是對(duì)于更簡(jiǎn)單的項(xiàng)目,不需要針對(duì)Spring進(jìn)行編譯以充分利用該框架。
另請(qǐng)注意,從Spring 3.2開始,不需要定義CGLIB依賴項(xiàng)(現(xiàn)在已升級(jí)到CGLIB 3.0) - 它已被重新打包(所有net.sf.cglib包現(xiàn)在是org.springframework.cglib)并且直接在內(nèi)部?jī)?nèi)聯(lián)spring-core JAR(有關(guān)其他詳細(xì)信息,請(qǐng)參閱JIRA)。
Maven配置Spring Persistence
現(xiàn)在讓我們看一下Spring Persistence依賴關(guān)系 - 主要是spring-orm:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency>
這附帶了Hibernate和JPA支持 - 例如HibernateTemplate和JpaTemplate - 以及一些額外的,持久性相關(guān)的依賴項(xiàng):spring-jdbc和spring-tx。
JDBC數(shù)據(jù)訪問(wèn)庫(kù)定義了Spring JDBC支持以及JdbcTemplate,而spring-tx代表了極其靈活的事務(wù)管理抽象。
Maven配置Spring MVC
要使用Spring Web和Servlet支持,除了上面的核心依賴項(xiàng)外,還需要在pom中包含兩個(gè)依賴項(xiàng):
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency>
spring-web依賴項(xiàng)包含Servlet和Portlet環(huán)境的公共web特定實(shí)用程序,而spring-webmvc支持Servlet環(huán)境的MVC。
由于spring-webmvc將spring-web作為依賴項(xiàng),因此在使用spring-webmvc時(shí)不需要明確定義spring-web。
使用Maven配置Spring Test
Spring Test Framework可以通過(guò)以下依賴項(xiàng)包含在項(xiàng)目中:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency>
從Spring 3.2開始,Spring MVC Test項(xiàng)目已經(jīng)包含在核心測(cè)試框架中 - 因此包括spring-test依賴就足夠了。
使用Milestones
Spring的發(fā)布版本托管在Maven Central上。但是,如果項(xiàng)目需要使用Milestones版本,則需要將自定義Spring存儲(chǔ)庫(kù)添加到pom中:
<repositories> <repository> <id>repository.springframework.maven.milestone</id> <name>Spring Framework Maven Milestone Repository</name> <url>http://repo.spring.io/milestone/</url> </repository> </repositories>
已定義了一個(gè)此存儲(chǔ)庫(kù),該項(xiàng)目可以定義依賴項(xiàng),例如:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.0.RC2</version> </dependency>
使用Snapshots
與Milestones類似,Snapshots托管在自定義存儲(chǔ)庫(kù)中:
<repositories> <repository> <id>repository.springframework.maven.snapshot</id> <name>Spring Framework Maven Snapshot Repository</name> <url>http://repo.spring.io/snapshot/</url> </repository> </repositories>
在pom.xml中啟用SNAPSHOT存儲(chǔ)庫(kù)后,可以引用以下依賴項(xiàng):
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.3.0.BUILD-SNAPSHOT</version> </dependency>
對(duì)于4.x:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.3.BUILD-SNAPSHOT</version> </dependency>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java線程和操作系統(tǒng)線程的關(guān)系解讀
這篇文章主要介紹了Java線程和操作系統(tǒng)線程的關(guān)系解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Servlet3.0學(xué)習(xí)總結(jié)之基于Servlet3.0的文件上傳實(shí)例
本篇文章主要介紹了Servlet3.0學(xué)習(xí)總結(jié)之基于Servlet3.0的文件上傳實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07mybatis-plus如何配置自定義數(shù)據(jù)類型TypeHandle
這篇文章主要介紹了mybatis-plus如何配置自定義數(shù)據(jù)類型TypeHandle,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Flutter ListView 上拉加載更多下拉刷新功能實(shí)現(xiàn)方法
這篇文章主要介紹了Flutter ListView 上拉加載更多下拉刷新功能實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07java.lang.ArrayStoreException異常的解決方案
這篇文章主要介紹了java.lang.ArrayStoreException異常的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12