maven 父maven_Maven的春天

maven 父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-corespring-expressionspring-aopspring-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支持(例如HibernateTemplateJpaTemplate )以及一些与持久性相关的其他依赖项: spring-jdbcspring-tx 。 JDBC数据访问库定义了Spring JDBC支持以及JdbcTemplate ,并且spring-tx表示Spring中极其灵活的事务管理抽象

4. Spring MVC与Maven

要使用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-webmvcspring-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的良好起点。

参考:baeldung博客中,我们JCG合作伙伴 Eugen Paraschiv的Maven带来了Spring

翻译自: https://www.javacodegeeks.com/2013/04/spring-with-maven.html

maven 父maven

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值