您的位置:首页 > 编程语言 > Java开发

使用Maven管理Spring[转]

2014-12-16 14:00 197 查看
原文链接:SpringwithMaven

原文日期:2013年04月17日

翻译日期:2014年06月29日

翻译人员:铁锚

翻译原文连接:/article/2584958.html

1.概述

本教程向您展示如何通过Maven管理Spring的依赖关系.最新的Spring版本可以在MavenCentral仓库中找到.也可以访问mvnrepository:org.springframework.

2.使用Maven管理基本的Spring依赖关系

Spring被设计为可高度模块化的——使用Spring中的一部分,不应该也不需要引用另一个不相关的部分.例如,使用基本的SpringContext可以不使用Persistence或MVC相关的Spring库.让我们从一个非常简单的Maven设置开始,这里只使用spring-context依赖:

[html]viewplaincopyprint?





<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>

spring-context包定义了Spring注入(Injection)容器,并依赖很少的Spring包:spring-core,spring-expression,spring-aop和spring-beans.通过启用支持一些Spring的核心技术增强了Spring容器:Spring表达式语言(SpEL),面向切面编程支持以及JavaBeans机制.注意,我们将spring-context依赖的范围指定为runtimescope——这将确保在编译时没有任何依赖Spring特定api的部分.对于一些底层开发的情况,可以将runtimescope从选定的Spring依赖项中移除(Maven默认是compile),但对于简单的项目来说,并不需要在编码时对Spring的整个框架进行调用.还要注意,从Spring3.2开始,不需要定义CGLIB依赖关系(现在升级到了CGLIB3.0)——它已经被重新打包(现在所有net.sf.cglib包变成了org.springframework.cglib包)并直接集成在spring-core这个JAR包中(详情请参考JIRA计划文档).

3.SpringPersistence与Maven

现在让我们看看Spring持久化依赖项——主要是spring-orm:

[html]viewplaincopyprint?





<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-orm</artifactId>

<version>${org.springframework.version}</version>

</dependency>


它提供了Hibernate和JPA支持,如HibernateTemplateJpaTemplate——以及持久性相关的一些依赖关系:spring-jdbc和spring-tx.JDBCDataAccess库定义了SpringJDBC支持以及JdbcTemplate,而spring-tx代表了非常灵活的事务管理的抽象(TransactionManagementAbstraction).

4.SpringMVC与Maven

要使用SpringWeb和Servlet支持,需要在pom中添加两个依赖项,当然,也需要上面所说的核心依赖:

[html]viewplaincopyprint?





<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.SpringSecurity与Maven

关于SecurityMaven依赖的深入讨论请参考SpringSecurity3.2.x与Spring4.0.x的Maven依赖管理.

6.SpringTest与Maven

SpringTest框架可以通过以下依赖引入到项目中:

[html]viewplaincopyprint?





<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring.version}</version>

<scope>test</scope>

</dependency>


从Spring3.2开始,SpringMVCTest项目作为一个独立的项目在github上提供下载,并且已被列入coreTest框架,只需要依赖spring-test就够了.注意,那些仍然依赖Spring3.1及以下版本的较老的项目,独立的旧的Maven依赖仍然存在并可继续使用,几乎是一样的结果.但不是在MavenCentral仓库中,所以使用他们需要添加一个自定义仓库到项目的pom中.

7.使用里程碑版本(Milestones)

Spring的release版本托管在Maven中央仓库中.但是,如果一个项目需要使用里程碑版本,那么需要在pom中添加Spring自己的Maven库:

[html]viewplaincopyprint?





<repositories>

<repository>

<id>repository.springframework.maven.milestone</id>

<name>SpringFrameworkMavenMilestoneRepository</name>

<url>http://repo.spring.io/milestone/</url>

</repository>

</repositories>


添加这个仓库以后,项目就可以定义如下的依赖关系:

[html]viewplaincopyprint?





<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>3.2.0.RC2</version>

</dependency>


8.使用Snapshots(快照)

和milestons版本一样,Spring的快照版也托管在自己的仓库中:

[html]viewplaincopyprint?





<repositories>

<repository>

<id>repository.springframework.maven.snapshot</id>

<name>SpringFrameworkMavenSnapshotRepository</name>

<url>http://repo.spring.io/snapshot/</url>

</repository>

</repositories>


只要在pom中启用了SNAPSHOT仓库,就可以引用以下的依赖关系:

[html]viewplaincopyprint?





<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>3.3.0.BUILD-SNAPSHOT</version>

</dependency>


当然,4.x也是一样的:

[html]viewplaincopyprint?





<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.0.3.BUILD-SNAPSHOT</version>

</dependency>


9.总结

本文讨论了使用Maven管理Spring的实际情况.主要介绍的是Maven依赖,还有其他一些知识点.这应该是在项目中使用Spring的一篇很好的入门文章.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: