本文共 12529 字,大约阅读时间需要 41 分钟。
4.3.7.RELEASE org.springframework spring-aop ${org.springframework.version} org.springframework spring-aspects ${org.springframework.version} org.springframework spring-beans ${org.springframework.version} org.springframework spring-context ${org.springframework.version} org.springframework spring-context-support ${org.springframework.version} org.springframework spring-core ${org.springframework.version} org.springframework spring-expression ${org.springframework.version} org.springframework spring-instrument ${org.springframework.version} org.springframework spring-instrument-tomcat ${org.springframework.version} org.springframework spring-jdbc ${org.springframework.version} org.springframework spring-jms ${org.springframework.version} org.springframework spring-messaging ${org.springframework.version} org.springframework spring-orm ${org.springframework.version} org.springframework spring-oxm ${org.springframework.version} org.springframework spring-test ${org.springframework.version} org.springframework spring-tx ${org.springframework.version} org.springframework spring-web ${org.springframework.version} org.springframework spring-webmvc ${org.springframework.version} org.springframework spring-webmvc-portlet ${org.springframework.version} org.springframework spring-websocket ${org.springframework.version}
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的!
spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了
接下来我们以spring 3.2.17.RELEASE版本为例,介绍spring框架结构,spring 4稍有不同,将在最后介绍
spring官网给出了一张spring3的结构图
图中将spring分为5个部分:core、aop、data access、web、test,图中每个圆角矩形都对应一个jar,如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring3的jar包一共是19个
下面介绍这5个部分的jar以及依赖关系
core部分包含4个模块
它们的完整依赖关系
因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging,如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错
1 2 3 4 5 6 7 8 9 10 11 |
|
aop部分包含4个模块
它们的依赖关系
data access部分包含5个模块
它们的依赖关系
web部分包含4个模块
它们的依赖关系
test部分只有一个模块,我将spring-context-support也放在这吧
它们的依赖关系
到这里,spring3的介绍就完了,看着这些图我相信你在maven中配置spring依赖时不会再混乱了
下面介绍spring4,与spring3结构基本相同,下面是官网给出的结构图
可以看到,图中去掉了spring3的struts,添加了messaging和websocket,其他模块保持不变,因此,spring4的jar有20个
它们的依赖关系
4.0.0 com.mytest springMVC war 0.0.1-SNAPSHOT springMVC Maven Webapp http://maven.apache.org UTF-8 3.8.1 1.7.26 1.2.17 2.8.9 4.3.22.RELEASE junit junit 4.12 test mysql mysql-connector-java 5.1.47 c3p0 c3p0 0.9.1.2 com.alibaba druid 1.1.14 org.mybatis mybatis 3.4.6 org.mybatis.generator mybatis-generator-core 1.3.7 org.mybatis mybatis-spring 1.3.2 org.springframework spring-core ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-aop ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-context-support ${spring.version} org.springframework spring-aspects ${spring.version} org.springframework spring-web ${spring.version} org.springframework spring-webmvc ${spring.version} org.springframework spring-tx ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-expression ${spring.version} aopalliance aopalliance 1.0 org.aspectj aspectjrt 1.8.9 org.aspectj aspectjweaver 1.8.13 org.aspectj aspectjtools 1.8.9 cglib cglib 3.2.10 org.slf4j slf4j-api ${slf4j.version} org.slf4j slf4j-log4j12 ${slf4j.version} commons-io commons-io 2.6 commons-logging commons-logging 1.2 commons-fileupload commons-fileupload 1.3.1 commons-codec commons-codec 1.12 org.apache.commons commons-lang3 ${commons-lang.version} org.apache.commons commons-collections4 4.2 commons-beanutils commons-beanutils 1.9.3 com.fasterxml.jackson.core jackson-core ${jackson.version} com.fasterxml.jackson.core jackson-annotations ${jackson.version} com.fasterxml.jackson.core jackson-databind ${jackson.version} com.alibaba fastjson 1.2.56 javax.servlet jstl 1.2 jar compile javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp javax.servlet.jsp-api 2.3.3 provided org.apache.maven.plugins maven-clean-plugin 2.4.1 springMVC
maven settings.xml 加入如下设置
jdk-1.8 true 1.8 1.8 1.8 1.8
servlet web.xml 的schema头部声明
转载地址:http://jrbvi.baihongyu.com/