本文将与大家分享以下几点:point_down:spring七大模块的主要功能模块之间的依赖关系Spring经典面试题——Spring的七大模块是什么?我们来看看这张图,回忆一下Spring都有哪些模块。可以分为以下七个模块:point_down:数据模块(DataAccess/Integration)Web模块切面模块(Aop,Aspects)工具模块(Instrumentation)消息模块核心模块测试模块总结后面的文章会重点介绍颜色较深的模块~:smile:DatamoduleDataaccessandintegrationmodule,DataAccess/Integration在这个模块中,有五个小模块,分别是:point_down:JDBC(JavaDatabaseConnectivity),Java数据库连接ORM(ObjectRelationalMapping),objectRelationalmappingOXM(ObjectXMLMapping),对象XML映射JMS(JavaMessageService),Java消息服务Transactions,看了一眼事务,发现最常用的应该是这个ORM和Transactions,这个JMS类似于JDBC,两者都提供了对应的模板,很少用到。最后这个OXM没印象了:joy:Summary星号是重点模块~:pig:Web模块这里有四个模块:point_down:WebWebMVCWebSocketWebFluxWeb模块提供核心部分,如codec,filter,序列化、国际化、跨域、转换器、客户端和服务端等WebMVC模块,也就是我们平时用来支持这种全双工通信的SpringMVCWebSocket模块WebFlux模块就是这种响应式Web编程模块,可以参考下面的图:point_down:摘要部分模块在这里有著名的AOP和AspectsAop:AspectOrientedProgramming,面向切面的编程,是对OOP的补充。本模块:pig2:简单说明一下这两个模块的区别:point_down:SpringAOP是一个基于代理的Aop框架,日常使用比较频繁的SpringAspects模块定义了五类切面,如下:point_down:关于Agents可以看看4ye写的这两篇文章~:point_right:《Java代理模式和字节码的探索》:point_right:《Cglib动态代理探索(ASM,Spring)》总结工具模块Instrumentation,这是Java的一个接口,可以用来监控agent事件日志的代码覆盖率的例子这些良性工具包括监控代理、分析器、覆盖分析器和事件记录器。——这个接口的注解还没有用到:pig2:这个AspectJ的LTW(load-time-weaver)就是用这个方法切切面的编织消息模块spring-messaging模块提供了一个基于WebSocket的STOMP协议实现STOMP(SimpleTextOrientedMessagingProtocol)是一种面向流文本的消息协议,也是一种MOM(MessageOrientedMiddleware,面向消息的中间件软件)设计的简单文本协议。常见的MQ支持该协议,如RocketMQ、RabbitMQ、ActiveMQ等。我们可以通过Spring官网的例子开始使用这个模块,大致如下:MQ实现这个广播、订阅等核心模块来到Spring的核心部分,这里我们熟悉的控制反转(IOC)和依赖注入(DependencyInjection,DI)这里有四个核心模块:point_down:BeansCoreContextExpression每个模块都很重要,这里有几个比较熟悉的bean比如:BeanFactoryBeansIOCStopWatchCoreSpringSpringApplicationContext在Context模块中,核心接口ParserContext在Expression中module里面,默认设置了这个EL表达式的前缀#{,suffix}依赖,大家可以整理出这样一张依赖图:point_down:什么是Spring?这里是一个4ye的滴滴思路:pig2:Spring是一个轻量级的框架,有七个模块,分别是data、Web、aspects、tools、messages、core,总共20个小模块用于测试。核心模块包括Beans、Core、Context、Expression、IOC和DI:star:方面模块主要包括AOP,涉及本次AOP编程:star:Web模块包括Web、WebMVC、WebSocket、WebFlux数据模块主要包括ORM,TX方便扩展,如邮件,缓存,定时任务等模块总结本期主要介绍七大模块以及各个模块之间的依赖关系。于是,4ye将本期内容整理成思维导图。需要的朋友可以访问这个地址,自行保存:微笑:(图片太大,压缩后看不清楚)https://processon.com/chart_image/611d2098f346fb37da73b8e1.png
