使用Maven配置Spring的方法步骤

作者:qianmoQ 时间:2023-02-05 18:37:46 

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

Maven中的Spring基本依赖关系

Spring的设计是高度模块化的 - 使用Spring的一部分不应该而且不需要另一部分。例如,基本的Spring Context可以没有Persistence或MVC Spring库。

让我们先从一个基本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>

这个依赖项 - spring-context - 定义了实际的Spring Injection Container,并且有少量的依赖项:spring-core,spring-expression,spring-aop和spring-beans。通过支持一些核心Spring技术来扩充容器:Core Spring实用程序,Spring表达式语言(SpEL),面向对象编程支持和JavaBeans机制。

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

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

Maven配置Spring Persistence

现在让我们看一下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 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>

来源:https://segmentfault.com/a/1190000018064555

标签:Maven,配置,Spring
0
投稿

猜你喜欢

  • Java如何获取word文档的条目化内容

    2023-10-27 15:04:32
  • 解决Android调用系统分享给微信,出现分享失败,分享多文件必须为图片格式的问题

    2023-07-03 11:08:04
  • 基于spring cloud多个消费端重复定义feign client的问题

    2022-09-18 11:34:23
  • JAVA ArrayList详细介绍(示例)

    2023-02-18 22:30:56
  • Android悬浮对话框(即点即关对话框)实现代码

    2023-01-01 04:53:54
  • RN在Android打包发布App(详解)

    2021-08-25 06:21:11
  • Selenium+Tesseract-OCR智能识别验证码爬取网页数据的实例

    2023-04-11 19:43:01
  • springboot整合quartz项目使用案例

    2023-02-13 19:57:12
  • SpringBoot--- SpringSecurity进行注销权限控制的配置方法

    2022-11-11 03:49:54
  • Android ListView实现上拉加载下拉刷新和滑动删除功能

    2021-09-24 19:08:04
  • Redis6搭建集群并在SpringBoot中使用RedisTemplate的实现

    2023-10-31 14:48:05
  • winform基于异步委托实现多线程摇奖器

    2021-10-09 05:09:39
  • SpringBoot整合TomCat实现本地图片服务器代码解析

    2021-07-30 16:34:19
  • Winform控件Picture实现图片拖拽显示效果

    2022-04-01 05:49:54
  • CentOS 7下JDK8的详细安装步骤

    2022-02-18 12:06:28
  • android的got表HOOK实现代码

    2023-11-18 17:04:51
  • 简单的java socket客户端和服务端示例

    2023-06-27 18:13:27
  • windows系统配置Java开发环境变量

    2022-03-07 23:28:07
  • Springboot整合Shiro的代码实例

    2021-09-03 04:16:52
  • SpringMVC框架整合Junit进行单元测试(案例详解)

    2022-04-10 20:53:37
  • asp之家 软件编程 m.aspxhome.com