使用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
猜你喜欢
- 前言本文尝试从What、Why、How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义、基本使用场景和使用方法。一、&
- 上一篇介绍了使用springmvc集成shiro登陆过程,通过FormAuthenticationFilter过滤器获取到用户输入的账号密码
- 本文实例讲述了C#读取csv格式文件的方法。分享给大家供大家参考。具体实现方法如下:一、CSV文件规则 1 开头是不留空,以行为单
- 本文实例为大家分享了java实现顺时针打印矩阵的具体代码,供大家参考,具体内容如下题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每
- 1、Spring Boot跨域配置有两种方法在后端使用Spring Boot。Spring Boot跨域非常简单,只需书写以下代码即可。@C
- java文件打包jar运行有效步骤:1.cmd 到当前目录(默认包主类所在目录为例) set classpath = 默认包主类所在目录2.
- 1、堆的定义①、它是完全二叉树,除了树的最后一层节点不需要是满的,其它的每一层从左到右都是满的。注意下面两种情况,第二种最后一层从左到右中间
- 本文主要介绍了25行Java代码将普通图片转换为字符画图片和文本的实现,分享给大家,具体如下:原图生成字符画文本(像素转换字符显示后,打开字
- timer和timertask是jdk自带的定时任务实现,无需导入第三方jar包来完成1、指定多久之后执行此任务,注意:只会执行一次publ
- 针对实例化过程中会做什么的分析,其中主要的是怎么推断出构造方法,怎么进行匹配【1】前言实例化这一步便是在doCreateBean方法的 in
- 控制json序列化/反序列化1. @JsonIgnoreProperties的用法@JsonIgnoreProperties(value =
- 一、银行存取款1.前言毕竟谁不喜欢钱呢!(不是😅)我看谁不喜欢在知识的海洋中遨游😤!2.描述银行存取款的流程是人们非常熟悉的事情,用户可以在
- 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先
- RateLimiter官方文档RateLimiter令牌桶原理图随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是1
- 本文实例讲述了java统计字符串中重复字符出现次数的方法。分享给大家供大家参考,具体如下:package com;import org.ju
- 这一篇我们说说Java线程Thread的interrupt中断机制。中断线程线程的thread.interrupt()方法是中断线程,将会设
- 一:问题引入前面讲到用户支付完成之后微信支付服务器会发送回调通知给商户,商户要能够正常处理这个回调通知并返回正确的状态码给微信支付后台服务器
- 首先在pom文件里引入mqtt的依赖配置<!--mqtt--> <d
- 一个请求从客户端发出到达服务器,然后被处理的整个过程其实是非常复杂的。本博客主要介绍请求到达服务器被核心组件DispatcherServle
- 一、传递参数既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更