Spring 框架模块深度解析:核心容器、数据访问、Web 层与其他关键模块

Spring 可能成为您的所有企业应用程序的一站式商店。但是,Spring 是模块化的,允许您挑选适用于您的模块,而无需引入其他模块。下面的部分提供了 Spring Framework 中所有可用模块的详细信息。Spring Framework 提供了大约20个模块,可以根据应用程序要求使用。

核心容器

核心容器由 CoreBeansContextExpression Language 模块组成,其详细信息如下:

  • Core 模块提供了框架的基本部分,包括 IoC 和依赖注入功能。
  • Bean 模块提供了 BeanFactory,它是工厂模式的复杂实现。
  • Context 模块建立在 CoreBeans 模块提供的坚实基础之上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是 Context 模块的焦点。
  • SpEL 模块为在运行时查询和操作对象图提供了强大的表达式语言。

数据访问/集成

数据访问/集成层由 JDBCORMOXMJMSTransaction 模块组成,其详细信息如下:

  • JDBC 模块提供了一个 JDBC 抽象层,消除了繁琐的 JDBC 相关编码。
  • ORM 模块为流行的对象关系映射API(包括 JPAJDOHibernateiBatis)提供了集成层。
  • OXM 模块提供了一个支持 JAXBCastorXMLBeansJiBXXStreamObject/XML 映射实现的抽象层。
  • Java消息服务 JMS 模块包含用于生成和消费消息的特性。
  • Transaction 模块支持实现特殊接口的类和所有 POJO 的编程和声明性事务管理。

Web

Web 层由 WebWeb-MVCWeb-SocketWeb-Portlet 模块组成,其详细信息如下:

  • Web 模块提供基本的面向Web的集成功能,如多部分文件上传功能以及使用servlet监听器和面向Web的应用程序上下文初始化 IoC 容器。
  • Web-MVC 模块包含Spring用于Web应用程序的Model-View-Controller(MVC)实现。
  • Web-Socket 模块提供了在Web应用程序中客户端和服务器之间进行基于WebSocket的双向通信的支持。
  • Web-Portlet 模块提供了用于在 Portlet 环境中使用的 MVC 实现,并反映了 Web-Servlet 模块的功能。

其他

还有其他一些重要的模块,如 AOPAspectsInstrumentationWebTest 模块,其详细信息如下:

  • AOP 模块提供了一种面向方面的编程实现,允许您定义方法拦截器和切入点,以清晰地解耦实现应该分离的功能的代码。
  • Aspects 模块提供了与 AspectJ 的集成,这又是一个强大而成熟的 AOP 框架。
  • Instrumentation 模块提供了类仪器支持和类装入器实现,可用于某些应用程序服务器。
  • Messaging 模块提供了支持 STOMP 作为用于应用程序的 WebSocket 子协议的功能。它还支持一种注释编程模型,用于从 WebSocket 客户端路由和处理 STOMP 消息。
  • Test 模块支持使用 JUnitTestNG 框架测试 Spring 组件。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关推荐
AI人工智能+电脑小能手2 分钟前
【大白话说Java面试题 第112题】【并发篇】第12题:AQS 中节点的入队时机有哪些?
java·开发语言·面试
摇滚侠3 分钟前
SpringMVC 入门到实战 处理静态资源的过程 64
java·后端·spring·maven·intellij-idea
影寂ldy3 分钟前
C# 泛型委托
java·算法·c#
摇滚侠5 分钟前
MyBatis 入门到项目实战 MyBatis 核心配置文件 15-19
java·tomcat·mybatis
IT WorryFree5 分钟前
Zabbix 7.4 API 可同步全量参数清单(同步第三方系统专用)
java·开发语言·zabbix
RoboWizard7 分钟前
一块硬盘上架前要闯多少关?
java·服务器·数据库
Liquad Li16 分钟前
ABP vNext 标准分层解决方案项目结构完整解析
后端
半夜燃烧的香烟17 分钟前
docker 安装minio nginx,配置nginx根据文根路由minio展示图片
java·nginx·docker
吴阿福|一人公司19 分钟前
深度解析 Python 类变量修改的命名空间隔离
java·服务器·数据结构
zzz_236824 分钟前
【Java基础】链表的七十二变——从LRU缓存到手写浏览器前进后退
java·链表·缓存