本文会和大家分享以下几点:point_down:
创新互联专业为企业提供松原网站建设、松原做网站、松原网站设计、松原网站制作等企业网站建设、网页设计与制作、松原企业网站模板建站服务,十余年松原做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
spring
七大模块模块的主要作用
模块间的依赖关系
Spring
那么先来看看这个图回忆下 Spring
有哪些模块吧
可以分成下面这 七大模块 :point_down:
数据模块( Data Access / Integration )
Web模块
切面模块( Aop , Aspects )
工具模块( Instrumentation )
消息模块
核心模块
测试模块
后面文章重点会放在颜色深的模块~ ????
数据访问与集成模块, Data Access/Integration
在这个模块中,有五个小模块,分别是:point_down:
JDBC
(Java Database Connectivity), Java数据库连接ORM
(Object Relational Mapping), 对象关系映射OXM
(Object XML Mapping), 对象XML映射JMS
(Java Message Service), Java消息服务Transactions
, 事务看了一眼下来,发现最常用的应该就是这个 ORM
和 Transactions
,而这个 JMS
和 JDBC
差不多,都提供了相应的模板,也是很少用到了,最后这个 OXM
都没点印象的:joy:
星号的是重点模块~:pig:
这里有四个模块:point_down:
Web
WebMVC
WebSocket
WebFlux
Web 模块提供了核心部分,如 编解码,过滤器,序列化,国际化,跨域,转换器,客户端和服务端等等
WebMVC 模块即我们平时用的 SpringMVC
WebSocket 模块用来支持这个 全双工通信
WebFlux模块就是这个 响应式Web编程模块 ,可以参考下图:point_down:
这里有大名鼎鼎的 AOP
和 Aspects
Aop
: Aspect Oriented Programming , 面向切面编程 ,是对 OOP
的补充
Aspects
:切面
不知道小伙伴们看到这里有没有犯迷糊~, 这里居然是两个模块,我一直以为只有 AOP
这个模块:pig2:
简单说明下这两个模块的不同:point_down:
Spring AOP
是一个 基于代理的 Aop 框架 ,日常使用比较多的
Spring Aspects
模块里面则定义了五种类型的切面,如下:point_down:
关于代理可以看看 4ye 之前写的这两篇文章~
:point_right: 《Java代理模式和字节码的探索》
:point_right: 《Cglib动态代理探索(ASM,Spring)》
Instrumentation , 这个是 Java 的一个接口,可以用来做
监控代理
事件日志记录
代码覆盖率
Examples of such benign tools include monitoring agents, profilers, coverage analyzers, and event loggers. —— 来自该接口的注释
还没用过呢:pig2:
这个 AspectJ
的 LTW(load-time-weaver) 就是通过该方式来进行 切面织入 的
Spring-messaging
模块提供了一种基于 WebSocket
的 STOMP
协议实现
STOMP
( Simple Text Oriented Messaging Protocol ) 是一种 流文本定向消息协议 ,也是一种为 MOM(Message Oriented Middleware,面向消息的中间件 )设计的简单文本协议
常见的这几个MQ都支持该协议,比如 RocketMQ
, RabbitMQ
, ActiveMQ
我们可以通过 Spring
官网的例子上手这个模块,大概如下:point_down:
启用简单内置消息代理时使用的组件
对接外部 MQ
来实现这个 广播,订阅 等
来到 Spring
最核心的部分,这里有我们熟悉的 控制反转 (Inversion of Control, IOC ) 和 依赖注入 ( Dependency Injection, DI )
这里有四个 核心模块 :point_down:
Beans
Core
Context
Expression
每一个模块都很重要,这里先列几个大家熟悉的 Bean
比如:
- BeanFactory
- Beans
- IOC
- StopWatch
- Core
- Spring
- Spring
ApplicationContext
在 Context
模块中 , 核心接口ParserContext
就在 Expression
模块中,里面定了这个 EL表达式 的默认前缀 #{
, 后缀 }
大概有这么些内容
这里有 Mock
, Junit
等,就不多介绍先:pig:
根据 Spring
源码模块中的 gradle
依赖,可以整理出这么一张 依赖关系图 :point_down:
这里分享下 4ye 滴思路:pig2:
Spring 是一个轻量级框架,有七大模块,分别为 数据,Web,切面,工具,消息,核心,测试
总共 20 几个小模块
核心模块有 Beans,Core,Context,Expression , IOC 和 DI:star:
切面模块主要有 AOP ,涉及到这个 AOP 编程 :star:
Web模块有 Web,WebMVC, WebSocket, WebFlux
数据模块主要有 ORM ,TX
本期介绍了这七大模块,以及各模块间的依赖,作用
4ye已经将本期内容整理成了一个思维导图,有需要的小伙伴访问该地址自行保存就可以啦:smile:
(图片太大了,被压缩后看不清了 )
https://processon.com/chart_image/611d2098f346fb37da73b8e1.png
本文题目:Spring的这七大模块你了解吗?
URL网址:http://www.shufengxianlan.com/qtweb/news48/484598.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联