Maven的春天
1.概述
本教程將討論如何使用Maven設置Spring,并介紹使用Spring依賴項的特定用例。 最新的Spring版本可以在Maven Central上找到。
2.基本的Maven Spring依賴關系
Spring被設計為模塊化和靈活的-基本的Spring容器可用于各種場景,而無需包含框架必須提供的任何更高級的功能。 一個非常基本的Maven設置將只需要使用spring-context依賴項:
<properties><org.springframework.version>3.2.4.RELEASE</org.springframework.version> </properties> <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework.version}</version><scope>runtime</scope> </dependency>此依賴關系(即spring-context )定義了實際的Spring Injection Container,并具有少量依賴關系: spring-core , spring-expression , spring-aop和spring-beans 。 這些通過啟用對某些Spring核心技術的支持來增強容器:Core Spring實用程序, Spring Expression Language (SpEL), Aspect Oriented Programming支持和JavaBeans機制 。
請注意,在定義spring-context依賴項時使用了運行時作用域 -這將確保在任何特定于Spring的API上都沒有編譯時依賴項。 對于更高級的用例,可以從某些選定的Spring依賴項中刪除運行時范圍,但是對于更簡單的項目, 無需針對Spring進行編譯即可充分利用框架。
還要注意,從Spring 3.2開始,已經重新打包了CGLIB依賴關系 (現在已升級到CGLIB 3.0)(所有net.sf.cglib軟件包現在都是org.springframework.cglib),并直接內聯到spring-core JAR中(請參見JIRA,以獲取更多詳細信息),因此無需明確定義它。
3. Maven的Spring持久性
除了上面顯示的核心Spring依賴項之外,主要的Spring持久性依賴項是spring-orm :
<dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${org.springframework.version}</version> </dependency>這帶來了Hibernate和JPA支持-例如HibernateTemplate和JpaTemplate-以及一些與持久性相關的其他依賴項: spring-jdbc和spring-tx 。 JDBC數據訪問庫定義了Spring JDBC支持以及JdbcTemplate ,并且spring-tx表示Spring中極其靈活的事務管理抽象 。
4.帶有Maven的Spring MVC
要使用Spring Web和Servlet支持,除了上面的核心依賴關系之外,pom還需要包含兩個依賴關系:
<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依賴項包含用于Servlet和Portlet環境的通用的Web特定實用程序,而spring-webmvc啟用對Servlet環境的MVC支持 。 由于spring-webmvc將spring-web作為依賴項,因此在使用spring-webmvc時不需要顯式定義spring-web 。
5.使用Maven的Spring Security
安全性Maven依賴關系在Spring Security with Maven文章中進行了深入討論。
6.彈簧測試
可以通過以下依賴項將Spring Test Framework包含在項目中:
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>test</scope> </dependency>從Spring 3.2開始,Spring MVC Test項目從github上的一個獨立項目開始,已經包含在核心Test Framework中。 這意味著Spring 3.2應用程序應該只使用spring-test依賴項。
對于仍使用Spring 3.1及更低版本的應用程序,較舊的獨立Maven依賴關系仍然存在,并且可以用于幾乎相同的結果。 但是,該依賴項不在Maven Central上,因此使用它需要將自定義存儲庫添加到項目的pom中。
7.使用里程碑
Spring的發行版托管在Maven Central中。 但是,如果項目需要使用里程碑版本,則需要將自定義Spring存儲庫添加到pom:
<repositories><repository><id>repository.springframework.maven.milestone</id><name>Spring Framework Maven Milestone Repository</name><url>http://maven.springframework.org/milestone</url></repository> </repositories>已經定義了一個此存儲庫,項目可以定義依賴項,例如:
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.2.0.RC2</version> </dependency>8.使用快照
與里程碑類似,快照托管在自定義存儲庫中:
<repositories><repository><id>repository.springframework.maven.snapshot</id><name>Spring Framework Maven Snapshot Repository</name><url>http://maven.springframework.org/snapshot</url></repository> </repositories>在pom中啟用SNAPSHOT存儲庫后,可以引用以下依賴項:
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.3.0.BUILD-SNAPSHOT</version> </dependency>乃至:
<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.0.0.BUILD-SNAPSHOT</version> </dependency>9.結論
本文討論了將Spring與Maven結合使用的實際細節。 這里介紹的Maven依賴關系當然是一些主要的依賴關系,還有其他一些值得一提并且還沒有削減的依賴關系。 不過,這應該是在項目中使用Spring的良好起點。
翻譯自: https://www.javacodegeeks.com/2013/04/spring-with-maven.html
總結
- 上一篇: 可燃物有哪些 盘点可燃物有哪些
- 下一篇: 什么是正能量 正能量是什么