如何在MAVEN中配置Spring的依赖包
答案:2 悬赏:80 手机版
解决时间 2021-02-10 03:48
- 提问者网友:别再叽里呱啦
- 2021-02-09 04:04
如何在MAVEN中配置Spring的依赖包
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-02-09 04:51
在pom里加上这几个依赖
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
全部回答
- 1楼网友:撞了怀
- 2021-02-09 05:30
1.1 spring-security-core
spring security的核心功能是由spring-security-core包提供的,包含了认证和访问控制功能、支持standalone应用程序、方法级安全和jdbc支持。
3.2.3.release
4.0.4.release
org.springframework.security
spring-security-core
${org.springframework.security.version}
注意:我们使用的是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依赖:
org.springframework.security
spring-security-web
${org.springframework.security.version}
这个项目为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属性中定义。
org.springframework
spring-core
${org.springframework.version}
org.springframework
spring-context
${org.springframework.version}
org.springframework
spring-jdbc
${org.springframework.version}
org.springframework
spring-beans
${org.springframework.version}
org.springframework
spring-aop
${org.springframework.version}
org.springframework
spring-tx
${org.springframework.version}
org.springframework
spring-expression
${org.springframework.version}
org.springframework
spring-web
${org.springframework.version}
1.4 spring-security-config及其他
要使用丰富的spring security xml的命名空间,需要定义spring-security-config依赖:
org.springframework.security
spring-security-config
${org.springframework.security.version}
runtime
没有任何代码需要在编译时依赖这个包,所以它的范围应该定义为runtime。
最后,ldap、acl、cas和openid支持需要分别增加各自的依赖包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯