使用Maven配置Spring

这篇文章说明了如何经过Maven配置Spring依赖项。最新的Spring版本能够在Maven Central上找到。html

Maven中的Spring基本依赖关系web

Spring的设计是高度模块化的 - 使用Spring的一部分不该该并且不须要另外一部分。例如,基本的Spring Context能够没有Persistence或MVC Spring库。spring

让咱们先从一个基本Maven配置,将只使用了spring-context依赖:express

<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 Container,而且有少许的依赖项:spring-core,spring-expression,spring-aop和spring-beans。经过支持一些核心Spring技术来扩充容器:Core Spring实用程序,Spring表达式语言(SpEL)面向对象编程支持和JavaBeans机制编程

注意咱们在运行时范围中定义了依赖关系- 这将确保在任何特定于Spring的API上没有编译时依赖性。对于更高级的用例,能够从一些选定的Spring依赖项中删除运行时范围,可是对于更简单的项目,不须要针对Spring进行编译以充分利用该框架。mvc

另请注意,从Spring 3.2开始,不须要定义CGLIB依赖项(如今已升级到CGLIB 3.0) - 它已被从新打包(全部net.sf.cglib包如今是org.springframework.cglib)而且直接在内部内联spring-core JAR(有关其余详细信息,请参阅JIRA)。框架

Maven配置Spring Persistencemaven

如今让咱们看一下Spring Persistence依赖关系 - 主要是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表明了极其灵活的事务管理抽象

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。

使用maven配置Spring Security

使用Maven配置Spring Security文章中深刻讨论了Maven配置Spring Security依赖关系。

使用Maven配置Spring Test

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项目已经包含在核心测试框架中 - 所以包括spring-test依赖就足够了。

使用Milestones

Spring的发布版本托管在Maven Central上。可是,若是项目须要使用Milestones版本,则须要将自定义Spring存储库添加到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>
复制代码

已定义了一个此存储库,该项目能够定义依赖项,例如:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.0.RC2</version>
</dependency>
复制代码

使用Snapshots

与Milestones相似,Snapshots托管在自定义存储库中:

<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存储库后,能够引用如下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.3.0.BUILD-SNAPSHOT</version>
</dependency>
复制代码

对于4.x:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>
复制代码
相关文章
相关标签/搜索