springmaven(spring的maven依赖)
本篇文章给大家谈谈springmaven,以及spring的maven依赖对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
maven是基于spring框架吗
maven跟spring没有关系,它们是两个东西,斗消maven是一腊纤个项目管理工具,简单点空局知说就是提供自动下载关键jar包用的,但是不仅仅如此;而spring是一个bean容器,是两个概念。两者可以结合使用
[img]如何在MAVEN中配置Spring的依赖包
1.1 spring-security-core
Spring Security的核心功能是由spring-security-core包提供的,包含了认证和访问控制功能、支持standalone应用程序、方法级安全和JDBC支持。
properties
org.springframework.security.version3.2.3.RELEASE/org.springframework.security.version
org.springframework.version4.0.4.RELEASE/org.springframework.version
/properties
dependency
groupIdorg.springframework.security/groupId
artifactIdspring-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
groupIdorg.springframework.security轿贺/groupId
artifactIdspring-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
groupIdorg.springframework/groupId
artifactIdspring-core/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-context/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-jdbc/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-beans/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-aop/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-tx/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-expression/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-web/artifactId
version${org.springframework.version}/version
/dependency
1.4 spring-security-config及其他
要使用丰富的Spring Security XML的命名空间,需要定义spring-security-config依赖:
dependency
groupIdorg.springframework.security/groupId
artifactIdspring-security-config/artifactId
version${org.springframework.security.version}/version
scoperuntime/scope
/dependency
没有任何代码需要在编译时依赖这个包,所以它的范围应该定义为runtime。
最后,LDAP、ACL、CAS和OpenID支持需要分别增加各自的依赖包:spring-security-ldap, spring-security-acl, spring-security-cas和spring-security-openid。
如何在Maven中配置Spring依赖
在Maven中Spring的基础配置
Spring是高度模块樱辩化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库。比如,使用Spring Context库不需要依赖Spring Persistence或者Spring MVC库。
让我们先从最简单开始,在Maven中配置spring-context依赖:
properties
org.springframework.version3.2.8.RELEASE/org.springframework.version
!-- org.springframework.version4.0.2.RELEASE/org.springframework.version --
/properties
dependency
groupIdorg.springframework/groupId
artifactIdspring-context/artifactId
version${org.springframework.version}/version
scoperuntime/scope
/dependency
上例定义的对spring-context的依赖,spring-context实现了Spring注入容器并且依赖:spring-core,spring-expression,spring-aop以及spring-beans。这些依赖包使容器可以支持Spring的一些核心技术:Spring核心组件,Spring EL表达式 (SpEL), 面向切面编程,JavaBean机制。
注意,在runtime范围定义这个依赖,因此需求确定在编译期间不需要依赖相关Spring特定的API。在一些高级应用场景下,一些Spring依赖项可以不用配置runtime范围,但是在目前比较简单的项目场景下,不需要针对Spring编译项目去获得整个框架的全部功能。
同样要注意的是,从Spring 3.2开始不需要定义CGLIB依赖(目前的版本是CGLIB 3.0)。现在使用内嵌在spring-core JAR(更多详细信息可以查看相关[JIRA]("JIRA")中的cglib包(net.sf.cglib现在使用org.springframework.cglib替代)。
在Maven配置Spring持久化框架
现在来看看Spring持久化框架的配置(主要是spring-orm)
dependency
groupIdorg.springframework/groupId
artifactIdspring-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
groupIdorg.springframework/groupId
artifactIdspring-web/artifactId
version${org.springframework.version}/version
/dependency
dependency
groupIdorg.springframework/groupId
artifactIdspring-webmvc/artifactId
version${org.springframework.version}/version
/dependency
spring-web包包含Servlet和Portlet所需要通用组件,spring-webmvc则在Servlet环境中启用MVC支持。
由于spring-webmvc依赖于spring-web,所以定义了spring-webmvc依赖后,可以不用显示的在pom定义spring-web。
在Maven中配置Spring Test
可以通过下面的依赖配置将Spring Test引入项目
dependency
groupIdorg.springframework/groupId
artifactIdspring-test/artifactId
version${spring.version}/version
scopetest/scope
/dependency
从Spring 3.2开始,Spring MVC Test项目已经被包含到核心的Spring Test框架中(原来是一个独立项目,项目托管在GitHub)。所以,从Spring 3.2开始,仅需要在依赖配置中配置spring-test依赖即可。
注意:对于使用Spring 3.1及以下版本的应用来说,独立的spring-mvc-test依赖还是可以使用的,可以参考这里进行配置。但是,这个依赖已经不再Maven的中央库中,所以如果需要增加依赖需要配置自定义Maven容器。
7. 使用Milestones(里程碑)版本
Spring的最新稳定版本保存在Maven的中央库,如果项目需要使用Spring的里程碑版本,需要在pom中配置自定义容器:
repositories
repository
idrepository.springframework.maven.milestone/id
nameSpring Framework Maven Milestone Repository/name
url;/url
/repository
/repositories
当容器配置完成后,项目就可以像下面示例一样定义依赖了:
dependency
groupIdorg.springframework/groupId
artifactIdspring-core/artifactId
version3.2.0.RC2/version
/dependency
8. 使用Snapshots(快照)版本
与里程碑版本一样,快照版本也需要配置自定义容器位置:
repositories
repository
idrepository.springframework.maven.snapshot/id
nameSpring Framework Maven Snapshot Repository/name
url;/url
/repository
/repositories
当快照容器位置配置完成后,下面的依赖配置就可以使用了:
dependency
groupIdorg.springframework/groupId
artifactIdspring-core/artifactId
version3.3.0.BUILD-SNAPSHOT/version
/dependency
对于4.x版本也是一样的:
dependency
groupIdorg.springframework/groupId
artifactIdspring-core/artifactId
version4.0.3.BUILD-SNAPSHOT/version
/dependency
关于springmaven和spring的maven依赖的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。