很多人都在用spring开发java项目,但是在配置maven依赖的时候,却不清楚配置哪些springjar。他们经常胡乱加一堆,在编译或运行出错后继续配置jar依赖,导致spring依赖混乱,甚至在下载时一次创建同类型的项目时,不知道有哪些spring依赖要配置,只能copy,其实我一开始就是这么干的!spring只有20个左右的jar包,每个jar包都有对应的功能。一个罐子也可能依赖于其他几个罐子。因此,搞清楚它们之间的关系,配置maven依赖就可以简洁明了。这是一个例子。普通java项目中使用spring框架需要哪些jar?只要有个org.springframeworkspring-context3.2.17.RELEASE那么就需要引入springmvc成web项目呢?就配置一个依赖org.springframeworkspring-webmvc3.2.17.RELEASE为什么可以这样配置?下面我们以spring3.2.17.RELEASE版本为例介绍一下spring框架结构。Spring4略有不同。我们将在***官网介绍一张spring3结构图,将spring分为五个部分。部分:核心、aop、数据访问、web、测试。图中每个圆角矩形对应一个罐子。如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar都有不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个图中没有列出的“spring-context-support”,所以spring3的jar包一共19个,下面分别介绍这5个部分的jar和依赖。core核心部分包含4个模块spring-core:依赖注入IoC和DI的最基本实现关于commons-logging,如果有自己的日志实现比如log4j,可以排除对commons-logging的依赖,排除没有日志实现的commons-logging依赖,编译报错org.springframeworkspring-context<版本>3.2.17.RELEASEcommons-loggingcommons-loggingaopaop部分包含4个模块spring-aop:aspect-orientedprogrammingspring-aspects:集成AspectJspring-instrument:为服务器提供一些类级别的工具支持和ClassLoader级别的实现spring-instrument-tomcat:为tomcat的仪器数据访问实现它们的依赖数据访问部分包含5个模块spring-jdbc:jdbc支持spring-tx:事务控制spring-orm:对象关系映射,集成orm框架spring-oxm:对象xml映射spring-jms:java消息服务其依赖webweb部分包含4个模块spring-web:基本的web功能,例如文件上传struts,不推荐,spring4不再提供它们的依赖test部分只有一个模块,我也会把spring-context-support放在这里spring-test:spring测试,提供junit和mock测试功能package,比如邮件服务,视图分析以及它们的依赖关系,到这里,spring3的介绍就结束了,看了这几张图,相信你在配置spri的时候不会一头雾水了maven中的ngdependencies下面介绍spring4,和spring3的结构基本一样。下面是官网给出的结构图。图中去掉了spring3的strut,增加了messaging和websocket,其他模块不变。于是就有了20个jar的spring4spring-websocket:web应用的高效通信工具spring-messaging:用于构建基于消息的应用及其依赖