阿里P7级架构师总结Spring核心模块及功能汇总


如果你在使用Spring,而且没有使用SpringBoot,那么每个Spring的功能都需要引入相应的jar包依赖。而Spring的jar包依赖又有一二十个,很容易混淆,造成编译或运行错误。

下面我们就整理一下Spring3和Spring4的核心模块和对应的jar包,方便我们在具体使用的过程中更加清晰的了解到我们都需要什么。

与Spring3相比去掉了Struts,新增了Messaging和Websocket。

分析上面的框架结构图,大概包括以下模块和jar包依赖。

核心容器(Core Container)

  • spring-core:核心类库,其他模块大量使用此jar包;
  • spring-beans:Spring定义Bean的支持;
  • spring-context:运行时Spring容器;
  • spring-context-support:Spring容器对第三方包的集成支持,比如邮件服务、视图
    解析
  • spring-expression:Spring表达式语言

AOP

  • spring-aop:基于代理的AOP支持;
  • spring-aspects:基于AspectJ的AOP支持;
  • spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器;
  • spring-instrument-tomcat:针对tomcat的instrument实现;

数据访问/集成

  • spring-jdbc:提供以jdbc访问数据库的支持;
  • spring-tx:提供编程式和声明式事务支持;
  • spring-orm:提供对象/关系映射支持;
  • spring-oxm:提供对象/xml映射支持;
  • spring-jms:提供对JMS(java消息服务)的支持;

web

  • spring-web:提供基础的web集成功能;
  • spring-webmvc:基于servlet的MVC;
  • spring-webmvc-portlet:基于portlet的mvc实现;
  • spring-websocket:提供websocket功能;

test&messaging

  • spring-test:spring测试,提供junit与mock测试功能;
  • spring-messaging:对消息架构和协议的支持;

当我们清晰明了的知道Spring的每个模块都需要引入什么jar包时,出错的概率也将大大减少,当然,如果能够使用Springboot,问题将会更加简化。

原文地址:https://blog.51cto.com/13754022/2370891

时间: 2024-10-10 11:15:16

阿里P7级架构师总结Spring核心模块及功能汇总的相关文章

阿里P8级架构师浅析秒杀架构设计实践思路

一.前言 一提到秒杀,都会想到高性能.高并发.高可用.大流量-.在电商体系中,交易系统占据了环节中的半壁江山.比如里面特别迷人的秒杀系统,那秒杀涉及到什么架构设计?会涉及到什么业务? 泥瓦匠自言自语:秒杀这个东西,一篇文章也说不完.我这一篇起个头,实践系列还在后面,敬请期待. 二.秒杀业务难点 秒杀业务难点,总结为两点 并发多读 并发少写 这不同于一些场景,优惠营销系统,只会是一个用户读多个数据,但也会大流量的读操作.但没有啥写操作. 并发多读,多用户并发读一个数据.比如华为手机只有一个库存,活

阿里云王牌架构师杨曦:N多环境N多应用个性配置管理如何从混乱到简单?

阿里云高级解决方案架构师 杨旭世界最大混合云的总架构师,4年前,开始作为双11阿里云技术负责人,负责搭建全球最大的混合云结构,把 "双11"的电商业务和技术场景在阿里云上实现,并保障这个混合云在双11当天能够满足全球客户的购物需求. 正文: 众多项目研发过程中为了调试观察应用运行时表现,修改常量配置的场景下往往需要频繁地对应用代码及配置项做打包发布进行应用版本更新甚至回滚代码.基于该场景,任何的应用配置项变更都需要将整个应用重新打包发布,整个过程非常繁琐,且容易出错.非常典型且具有代表

阿里云王牌架构师杨曦:也谈系统缓存设计误区及高阶使用技巧

阿里云高级解决方案架构师 杨旭世界最大混合云的总架构师,4年前,开始作为双11阿里云技术负责人,负责搭建全球最大的混合云结构,把 "双11"的电商业务和技术场景在阿里云上实现,并保障这个混合云在双11当天能够满足全球客户的购物需求. 正文 相信很多研发同学都有过引入缓存进入到应用架构设计中的经历,本文从几个角度阐述一些选型误区和使用误区以及高阶使用技巧等,供开发者参考. 什么情况下开始考虑缓存? 缓存的主要目的是为了挡一些读多写少的用户请求,且数据在一定时间周期内保持不变,再且业务允许

互联网(腾讯)p7安卓架构师近十年核心资料免费分享

最近整理了一份安卓开发的核心知识点(部分源码).包含了UI工程师,Android底层开发工程师,Android部分架构,原生性能优化及混合优化,大厂面试):以及最新的flutter专精技术知识点.**如果需要获取到这个[核心知识点整理]文档的请入圈(面向全体Android开发人员)https://jq.qq.com/?_wv=1027&k=5MQDHG8 由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 源码文档 摘选部分kotlin当然还有实战部分

阿里P8高级架构师带你领略阿里巴巴微服务架构——最后有惊喜哦

Dubbo微服务框架的核心功能 启动时检查 ?Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true" 集群容错 failover 失败自动切换,当出现失败重试其它服务器.通常用于读操作,重试带来更长延迟. failfast快速失败,只发起一次调用,失败立即报错.通常用于非幂等性写操作,如新增记录. failsafe失败安全,出现异常时,直接忽略.通常用于写入审计日志等操作. fai

剑指架构师系列-spring boot的logback日志记录

Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志对象,也可以定义日志类型.级别. 级别:ERROR.WARE.INFO.DEBUG和TRACE.没有FATAL,归纳到了ERROR级别里.ERROR.WARN and INFO level messages are logged by default. 在Spring Boot中,最好定义为logb

阿里九年架构师教你如何学会阅读源码

读源码的经历 刚参加工作那会,没想过去读源码,更没想过去改框架的源码:总想着别人的框架应该是完美的.万能的,应该不需要改:另外即使我改了源码,怎么样让我的改动生效了? 项目中引用的不还是没改的jar包吗.回想起来觉得那时候的想法确实挺-- 工作了一年多之后准备跳槽了,开始了一轮的面试,其中有几个面试官就问到了相关的源码问题:ArrayList.HashMap的底层实现,spring.mybatis的相关源码.问源码的面试一般就是回去等消息,然后就没然后了. 那时候开始意识到,源码这东西在之前的工

阿里大数据架构师必备技能,你“佩奇”了嘛?

这两天真的是被<啥是佩奇>这支广告片刷屏了.佩奇明明是个喜剧角色,却把所有人都给看哭了! 中间的剧情,小孙子一句:"想要佩奇",结果爷爷就开始了满村子的寻找佩奇,到最后寻找到了小编认为是最好看的佩奇 不知道大家看了之后是什么感觉,反正我看了之后的感觉是非常感动了.不过经过几天的发酵,"佩奇"这两个字似乎有了更多的含义了!各种"佩奇"齐出不穷,女人的"佩奇"是什么样的?程序员的"佩奇"是什么样的?

Spring核心模块解析

Spring框架是一个轻量级的集成式开发框架,可以和任何一种框架集成在一起使用,可以说是一个大的全家桶.Spring从1.x发展到现在的5.x可以说是越来越强大,下面来看看Spring都包含哪些核心的模块吧. Spring图中的这些模块,都至少由一个以上的jar包组成. 1.Core Container - 核心容器 spring-core:Spring中的核心工具类包. spring-beans:Spring中定义bean的组件. spring-context:Spring的运行容器. spr