很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝..... spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了,下面举个例子,要在普通java工程使用spring框架,需要哪些jar呢?只要一个 org.springframework spring-context 3.2.17.RELEASE 那要在web工程中引入spring mvc呢?也只要配置一个依赖 org.springframework spring-webmvc 3.2.17.RELEASE 为什么可以这样配置?接下来我们以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 l core部分包含4个模块 l spring-core:依赖注入IoC与DI的最基本实现 l spring-beans:Bean工厂与bean的装配 l spring-context:spring的context上下文即IoC容器 l spring-expression:spring表达式语言 它们的完整依赖关系

因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging,如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错 org.springframework spring-context 3.2.17.RELEASE commons-logging commons-logging aop l aop部分包含4个模块 l spring-aop:面向切面编程 l spring-aspects:集成AspectJ l spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器 l spring-instrument-tomcat:针对tomcat的instrument实现 它们的依赖关系

data access l data access部分包含5个模块 l spring-jdbc:jdbc的支持 l spring-tx:事务控制 l spring-orm:对象关系映射,集成orm框架 l spring-oxm:对象xml映射 l spring-jms:java消息服务 它们的依赖关系

web l web部分包含4个模块 l spring-web:基础web功能,如文件上传 l spring-webmvc:mvc实现 l spring-webmvc-portlet:基于portlet的mvc实现 l spring-struts:与struts的集成,不推荐,spring4不再提供 它们的依赖关系

test l test部分只有一个模块,我将spring-context-support也放在这吧 l spring-test:spring测试,提供junit与mock测试功能 l spring-context-support:spring额外支持包,比如邮件服务、视图解析等 它们的依赖关系

到这里,spring3的介绍就完了,看着这些图我相信你在maven中配置spring依赖时不会再混乱了 下面介绍,与spring3结构基本相同,下面是官网给出的结构图

可以看到,图中去掉了spring3的struts,添加了messaging和websocket,其他模块保持不变,因此,spring4的jar有20个 l spring-websocket:为web应用提供的高效通信工具 l spring-messaging:用于构建基于消息的应用程序 它们的依赖关系

java框架之Spring 核心框架体系结构相关推荐

  1. java体系技术框架_java框架之Spring 核心框架体系结构

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

  2. java 框架架构图_java框架之Spring 核心框架体系结构

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

  3. Spring教程 - Spring核心框架教程

    Spring教程 - Spring核心框架教程 Spring是最广泛使用的Java EE框架之一.我已经在Spring Tutorial上写了很多内容,这是一篇摘要文章,它将作为索引按顺序完成所有这些 ...

  4. 05. 手写Spring核心框架

    目录 05 手写Spring核心框架 Pt1 手写IoC/DI Pt1.1 流程设计 Pt1.2 基础配置 application.properties pom.xml web.xml Pt1.3 注 ...

  5. spring核心框架体系结构(jar包依赖)

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

  6. 高级java知识结构图,Spring高级框架课程笔记 PDF 下载

    主要内容: Spring ⾼级框架(讲师:应癫) ssh = spring + struts + hibernate ssm = spring + springmvc + mybatis spring ...

  7. java url 授权,Spring MVC框架 - 基本认证之URL 授权认证

    [导读]为控制器添加注解是非常简单的,但这往往并不是最可行的方案.有时候,我们会想要完全控制授权功能. 为控制器添加注解是非常简单的,但这往往并不是最可行的方案.有时候,我们会想要完全控制授权功能. ...

  8. SpringMVC框架、Spring boot框架、SSM區別

    參考: 构建微服务:Spring boot 入门篇       https://www.cnblogs.com/ityouknow/p/5662753.html Spring Cloud与Docker ...

  9. Spring框架之Spring Boot框架搭建详解|CSDN创作打卡

    一.IDEA搭建Spring Boot 1.打开IDEA选择file-new-Project 2.进入新界面先选择Spring Initializr,然后选择SDK版本,及 Initializr Se ...

最新文章

  1. ASP.NET 状态管理概述(MSDN)
  2. Python2.7连接MySQL5.7 附demo
  3. 天线开路短路检测原理_变频空调通讯电路原理与元件级维修
  4. mysqldatareader获取整行数据给datarow_C# sqladapter 与sqldataReader
  5. CentOSLinux安装Docker容器
  6. Hbase Memstore刷新方式与Region的数目上限
  7. php 学习编译扩展
  8. 排序 --- 6.2 Merge Two Sorted Lists || 6.3 Merge k Sorted Lists --- 图解
  9. 使用rem等比例缩放手机界面
  10. 2、硬件工程师之元器件学习—电阻(二)
  11. 【Xcode使用技巧】Xcode环境变量(environment variables)
  12. 在blog中添加attachments功能 (修改系统Control)
  13. 微服务可有本手、妙手、俗手?落子网关,俗手转妙手 ———— 2022高考全国作文题
  14. 关于用python爬取自如网信息的价格问题(已解决)
  15. 【LTE基础知识】GUTI(Globally Unique Temporary UE Identity)分配
  16. Cocoa -- 添加和移除开机启动项
  17. 最右ollvm字符串混淆还原
  18. 高德地图上画图!和3D绘制区域
  19. Pikachu靶场之越权漏洞详解
  20. 模拟实现简单的自动售货系统

热门文章

  1. ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件 ....
  2. c++ file operation (reference 5)
  3. 升级asp.net1.0到1.1
  4. UA MATH565C 随机微分方程V Stationary Measure
  5. C++ const char* 学习
  6. C# System.Runtime.InteropServices 相关学习总结
  7. 图解在反汇编中识别VC++之if-else分支语句
  8. svnserve.conf - snvserve 的仓库配置文件
  9. 发送请求获取响应内容(c#)
  10. STM32的时钟配置随笔