如何在Maven中配置Spring依赖
发布网友
发布时间:2022-04-23 22:46
我来回答
共1个回答
热心网友
时间:2022-04-09 06:55
1.1 spring-security-core
Spring Security的核心功能是由spring-security-core包提供的,包含了认证和访问控制功能、支持standalone应用程序、方法级安全和JDBC支持。
<properties>
<org.springframework.security.version>3.2.3.RELEASE</org.springframework.security.version>
<org.springframework.version>4.0.4.RELEASE</org.springframework.version>
</properties>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
注意:我们使用的是3.2.x版本的Spring Security--Spring和Spring Security有着不同的版本计划,所以他们的版本号之间没有一对一关系。
如果项目使用的是较老版本的Spring,需要注意的时Spring Security 3.1.x版本不依赖于Spring 3.1.x版本,因为Spring Security 3.1.x版本在Spring 3.1之前发布。Spring的计划是在后续的版本中,使双方的版本号更为接近,更多细节请查看这个JIRA。我们将在后面的内容中看看这种情况对我们的实际影响。
1.2 spring-security-web
要为Spring Security增加Web支持,需要引入spring-security-web依赖:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${org.springframework.security.version}</version>
</dependency>
这个项目为Servlet环境引入了针对URL访问控制的相关基础安全组件和过滤器。
1.3 Spring Security与较老版本的Spring Core之间的依赖问题
如上文所述,这个新的依赖产生一个Maven依赖关系问题,Spring Security的相关jar不依赖于最新的Spring core的jar (而是以前的版本)。这可能使的被依赖的Spring core相关包在类路径中被配置前在最新的Spring 4.x相关包的前面。
这是如何发生的呢?我们需要了解Maven处理版本冲突的机制,Maven会选择与依赖树树根最接近的版本。在之前的情况中,spring-orm依赖4.x版本的spring-core,而spring-security-core依赖于3.2.8版本的spring-core。因此,spring-orm和sprint-security-web的定义顺序就是一个问题,先定义的会有更高的优先级。最终情况就是,我们的类路径中会有两个版本的spring-core。
为了避免这类问题,我们需要在我们的pom文件中明确指定一些Spring依赖,而不依靠Maven隐式依赖机制。我们将在pom的根文件中定义特定的依赖关系,这样这些依赖关系将会有更高的优先级。下面例子中,将对所有的Spring核心组件明确定义相同的版本,对于多模块项目,需要在父配置文件的dependencyManagement属性中定义。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
1.4 spring-security-config及其他
要使用丰富的Spring Security XML的命名空间,需要定义spring-security-config依赖:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${org.springframework.security.version}</version>
<scope>runtime</scope>
</dependency>
没有任何代码需要在编译时依赖这个包,所以它的范围应该定义为runtime。
最后,LDAP、ACL、CAS和OpenID支持需要分别增加各自的依赖包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。
如何在Maven中配置Spring依赖
在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...
maven中如何配置springboot的相关依赖和热启动
maven中配置springboot的相关依赖和热启动的方法如下:1、在maven中配置springboot的相关依赖及热启动,需要在pom.xml文件中添加springboot的相关依赖。2、在maven插件中添加spring-boot-maven-plugin插件,用于启动springboot应用。3、在maven插件中添加spring-boot-devtools插件,用于实现热启动。
如何在Maven中配置Spring Security依赖
1.3 Spring Security与较老版本的Spring Core之间的依赖问题 如上文所述,这个新的依赖产生一个Maven依赖关系问题,Spring Security的相关jar不依赖于最新的Spring core的jar (而是以前的版本)。这可能使的被依赖的Spring core相关包在类路径中被配置前在最新的Spring 4.x相关包的前面。这是如何发生的...
Maven阿里云镜像解决SpringBoot依赖问题
首先,确保你的IDEA或其他开发工具的Maven配置指向了包含阿里云镜像的settings.xml。在IDEA中,可以通过【File】 → 【Settings】 → 搜索“Maven”来找到并配置,如图所示。在Windows系统中,settings.xml默认位于用户目录的.m2文件夹内,你可以将包含阿里云镜像的settings.xml替换掉,从而避免后续依赖下载问题...
怎么在eclipse maven中添加spring框架
在eclipse下建立一个project,此处以demo为例建立项目。因为此处结合struts2首先对struts2做简单的配置,主要以下几个文件配置web.xml,struts.xml,同时导入相应的jar。现在开始配置spring,问题在于导入哪些jar,结合本人的经验,spring-3-2-0导入以下基本jar便可,若要使用其他功能要导入相应的jar。导入较多...
在Maven里,Hibernate4和Spring3应该怎么配置C3P0
去maven 的中央仓库查依赖的配置。中央然后搜索hibernate 或都spring就会出现所有有关的项目 找到你需要的点进去就会出现如下页面 然后复制粘贴就可以了,不懂追问我
如何用springboot创建maven的依赖工程
最近公司运用springboot构建项目,确实比ssh搭建要快很多。springboot官方学习网站1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了。2.创建一个maven项目,pom.xml文件里面写这些:<modelVersion>4.0.0</modelVersion><groupId>springboot</groupId><artifactId>testSpringBoot</artifact...
Spring+Boot整合MyBatis的逆向工程需要在pom文件中配置相应的依赖是...
首先,你需要添加MyBatis相关的依赖:xml复制代码<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version></dependency> 接下来,你还需要添加MySQL数据库驱动依赖(如果你使用的是MySQL):xml复制代码<dependency> ...
创建springboot项目(maven创建springboot项目)
第一步:启动一个新的SpringBoot项目利用启动.spring.io创建一个“网络”项目。在“依赖项”对话框中搜索并添加“web”依赖项,如屏幕截图所示。点击“生成”按钮,下载zip,然后将其解压缩到计算机上的文件夹中。其实SpringBoot项目的启动,本质上就是一个Spring的初始化操作。新建springboot项目在pom....
如何简洁高效的搭建一个SpringCloud2023的maven工程
选择Maven作为工程项目和依赖管理工具来搭建SpringCloud2023的maven工程,主要是因为其具有多模块和BOM依赖管理的特点,提高效率与统一性。在Maven多模块项目中,依赖包不共享,但父模块可以统一管理全局共享依赖,避免重复配置,简化项目管理。BOM依赖管理是Maven提供的一种集中管理依赖关系和版本的方式,通过定义...