Spring中的模塊與應用場景詳解
前言
控制反轉(IoC)和依賴注入(DI)
IoC/DI 是 Spring 的核心設計模式,它的所有組件和功能,都是基于這一模式設計的。IoC 意味著你設計好的對象交給容器控制,而不是在你的對象內部直接控制,而各個對象之間的依賴關系,是在容器運行期間決定的,容器動態(tài)地將依賴關系注入到組件中,且不關心具體的對象或資源來自何處,這大大降低了對象間的耦合度。
一、Spring模塊
Spring 框架的模塊:

1. 核心模塊
| 名稱 | 功能 |
| spring-core | 提供 IoC 和 DI 等功能 |
| spring-beans | 提供 Bean 容器等功能 |
| spring-context | 基于 core 和 beans 模塊構建,擴展了功能 |
| spring-context-support | 支持整合第三方工具 |
| spring-expression | 提供 SpEL 表達式支持 |
2. AOP模塊
| 名稱 | 功能 |
| spring-aop | 提供 AOP(面向切面編程)支持 |
| spring-aspects | 提供 AspectJ 的集成 |
| spring-instrumentation | 提供類植入和類加載器的實現(xiàn) |
3. 消息模塊
| 名稱 | 功能 |
| spring-messaging | 提供消息功能支持 |
4. 數(shù)據(jù)訪問模塊
| 名稱 | 功能 |
| spring-jdbc | 提供 JDBC 抽象層來代替原生 JDBC 功能 |
| spring-tx | 提供編程式和聲明式事務管理 |
| spring-orm | 提供主流的 ORM 框架 API 支持 |
| spring-oxm | 提供支持對象/XML映射抽象層 |
| spring-jms | 提供支持生產和消費的消息功能 |
5. Web模塊
| 名稱 | 功能 |
| spring-web | 提供 Web 功能支持 |
| spring-webmvc | 提供 Web 應用程序的 MVC 和 REST Web Services 支持 |
| spring-websocket | 提供 Web Socket 支持 |
6. 測試模塊
| 名稱 | 功能 |
| spring-test | 提供 JUnit 或 TestNG 等主流單元測試框架的集成 |
二、集成功能
Spring 對一些常用的功能組件都會基于 IoC/DI 模式來進行封裝,簡化其使用方式,以便開發(fā)人員開箱即用,不僅可以提高開發(fā)效率,還降低了耦合,提高了測試性和可移植性。
1. 目標原則
目標:
- 為復雜的企業(yè)集成解決方案提供簡單的模型
- 便于開發(fā)基于異步、消息驅動行為的應用
- 使現(xiàn)有 Spring 用戶更直觀、更循序漸進地使用
原則:
- 降低組件的耦合度,增加了模塊化和可測試性
- 強制區(qū)分業(yè)務邏輯和組件集成邏輯
- 擴展點是抽象的,增加了擴展性和可移植性
2. 支持組件
- Endpoint
- AMQP
- Spring ApplicationEvent
- File
- FTP/FTPS Adapters
- HTTP
- JDBC
- JPA
- JMS
- MongoDb
- MQTT
- Redis
- Resource
- RMI
- RSocket
- SFTP Adapters
- STOMP
- Stream
- Syslog
- TCP and UDP
- WebFlux
- WebSockets
- Web Services
- XML
- Zookeeper
三、應用場景
Spring 框架由多個模塊構成,它不是一個全有或者全無的解決方案,我們完全可以按照需求使用它的全部或者部分特性。
1. 典型完整的 Spring Web 應用程序

Spring 完整使用場景:基于 Tomcat Servlet 容器,Web 層、業(yè)務層和數(shù)據(jù)持久層都使用 Spring 模塊實現(xiàn)。
2. 使用第三方 Web 框架的應用程序

整合第三方 Web 框架:基于 Tomcat Servlet 容器,Web 層使用 Struts 等其他框架,業(yè)務層和數(shù)據(jù)持久層都使用 Spring 模塊實現(xiàn)。
3. 基于 RPC 的應用程序

RPC 應用程序:基于 Tomcat Servlet 容器,使用Spring的 Hessian-,Rmi- 或HttpInvokerProxyFactoryBean 類構建遠程調用程序。
4. 基于 EJB 的應用程序

EJB 應用程序:Spring 提供訪問層和抽象層來管理 EJB。
比如我們通常使用的 SSM 框架和 SSH 框架就是 Spring 框架和第三方框架的組合形式:
| 框架 | Web 層 | 業(yè)務層 | 數(shù)據(jù)持久層 |
| SSM | SpringMVC | Spring | MyBatis |
| SSH | Struts | Spring | Hibernate |
不管我們怎么搭建應用程序框架,Spring 都能很好的集成到我們應用程序中。
到此這篇關于Spring中的模塊與應用場景詳解的文章就介紹到這了,更多相關Spring模塊與應用場景內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
快速解決springboot在yml配置了啟動端口但啟動還是8080問題
這篇文章主要介紹了快速解決springboot在yml配置了啟動端口但啟動還是8080問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
SpringBoot基于RabbitMQ實現(xiàn)消息可靠性的方法
RabbitMQ 提供了 publisher confirm 機制來避免消息發(fā)送到 MQ 過程中丟失,這種機制必須給每個消息指定一個唯一ID,消息發(fā)送到MQ以后,會返回一個結果給發(fā)送者,表示消息是否處理成功,本文給大家介紹了SpringBoot基于RabbitMQ實現(xiàn)消息可靠性的方法,需要的朋友可以參考下2024-04-04

