Spring 框架七大模块(Java EE 学习笔记03)

news/2024/11/26 10:50:48/

​核心容器模块(Core Container)

核心容器模块在Spring的功能体系中起着支撑性作用,是其他模块的基石。核心容器层主要由Beans模块、Core模块、Contex模块和SpEL模块组成。

(1)Beans模块。它提供了BeanFactory类,是工厂模式的经典实现,Beans模块的主要作用是创建和管理Bean对象。

(2)Core模块。它提供了Spring框架的基本组成部分,包括IoC和DI功能。

(3)Context模块。它构建于Beans模块和Core模块的基础之上,它可以通过ApplicationContext接口提供上下文信息。

(4)SpEL模块。它是Spring 3.0后新增的模块,提供了对SpEL表达式语言(Spring Expression Language)的支持,SpEL表达式语言是一个在程序运行时支持操作对象图的表达式语言。

数据访问及集成模块(Data Access/Integration)

数据访问及集成模块用于访问和操作数据库中的数据,它主要包含JDBC模块、ORM模块、OXM模块、JMS模块和Transactions模块。

(1) JDBC模块。它提供了一个JDBC的抽象层,消除了冗长的JDBC编码并能够解析数据库供应商特有的错误代码。

(2)ORM模块。它为主流的对象关系映射API提供了集成层,用于集成主流的对象关系映射框架。

(3)OXM模块。它提供了对XML映射的抽象层的支持,如JAXB、Castor等。

(4)JMS模块。它主要用于传递消息,包含消息的生产和消费。自4.1版本后,JMS模块支持与Spring-message模块的集成。

(5)Transactions模块。它的主要功能是事务管理。

Web模块

Web模块的实现基于ApplicationContext基础之上,它提供了Web应用的各种工具类,包括了Web模块、Servlet模块、WebSocket模块和Portlet模块。

(1) Web模块。它提供了针对Web开发的集成特性,如大部分文件上传功能等。此外,Web模块还包含一个HTTP客户端和Spring远程处理支持的Web相关部分。

(2)Servlet模块。它提供了Spring的模型、视图、控制器以及Web应用程序的REST Web服务实现。

(3)WebSocket模块。它是Spring 4.0以后新增的模块,它提供了WebSocket和SockJS的实现,以及对STOMP的支持。

(4)Portlet模块。它类似Servlet模块的功能,提供了Portlet环境下的MVC实现。

其他模块

Spring框架的其他模块还有AOP模块、Aspects模块、Instrumentation模块以及Test模块。

(1) AOP模块。它提供了对面向切面编程的支持,程序可以定义方法拦截器和切入点,将代码按照功能进行分离,以降低程序的耦合性。

(2)Aspects模块。它提供了与AspectJ集成的支持。

(3)Instrumentation模块。它提供了对类工具的支持,并且实现了类加载器,该模块可以在特定的应用服务器中使用。

(4)Messaging模块。它是Spring 4.0以后新增的模块,它提供了对消息传递体系结构和协议的支持。

(5)Test模块。它提供了对程序单元测试和集成测试的支持。


http://www.ppmy.cn/news/1550038.html

相关文章

spring boot jpa中 Hibernate 注解 @Immutable 的使用场景

入门示例 使用 spring boot jpa 来操作数据库的增删改查是非常方便的,定义完 model 之后,直接定义JPA 即可,后续操作就很丝滑了: Table(name "host_spec_price") Data Entity public class BudgetHost {IdGeneratedV…

后端开发详细学习框架与路线

🚀 作者 :“码上有前” 🚀 文章简介 :后端开发 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 为帮助你合理安排时间,以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…

python Flask指定IP和端口

from flask import Flask, request import uuidimport json import osapp Flask(__name__)app.route(/) def hello_world():return Hello, World!if __name__ __main__:app.run(host0.0.0.0, port5000)

【c++】模板详解(2)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 一、非类型模板参数 二、模板的特化 1. 概念 2. 场景举例 3. 函数模板的特化 4. 类模板的特化 全特化 偏特化 1. 部分特化 2. 对参数的…

气膜场馆照明设计:科技与环保的完美结合—轻空间

气膜场馆的照明设计,选用高效节能的400瓦LED灯具,结合现代节能技术,提供强大而均匀的光照。LED灯具在光效和寿命方面优势显著,不仅降低运营能耗,还有效减少碳排放,为绿色场馆建设贡献力量。 科学分布&…

【Python爬虫五十个小案例】爬取豆瓣电影Top250

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🪲前言 在这篇博客中,我们将学习如何使用Python爬取豆瓣电影Top250的数据。我们将使用requests库来发送HTTP请求,…

java脚手架系列16-AI大模型集成

之所以想写这一系列,是因为之前工作过程中有几次项目是从零开始搭建的,而且项目涉及的内容还不少。在这过程中,遇到了很多棘手的非业务问题,在不断实践过程中慢慢积累出一些基本的实践经验,认为这些与业务无关的基本的…

优化Docker镜像:提升部署效率与降低资源消耗

目录 1. 最小化镜像层 2. 使用轻量级基础镜像 3. 多阶段构建 4. 清理不必要的文件和依赖 5. 使用.dockerignore文件 6. 压缩和优化文件系统 7. 外部化配置和数据 8. 限制容器资源 9. 定期清理未使用的镜像和容器 结论 在云计算和微服务架构的浪潮中,Docke…