Spring中的模块与应用场景详解

 更新时间:2023年09月27日 09:36:07   作者:艾江南  
这篇文章主要介绍了Spring中的模块与应用场景详解,Spring 框架可以为 Java 应用程序开发提供全面的基础设施支持,它是现在非常流行的 Java 开源框架,对于一个 Java 开发人员来说,熟练掌握 Spring 是必不可少的,需要的朋友可以参考下

前言

控制反转(IoC)和依赖注入(DI)

IoC/DI 是 Spring 的核心设计模式,它的所有组件和功能,都是基于这一模式设计的。IoC 意味着你设计好的对象交给容器控制,而不是在你的对象内部直接控制,而各个对象之间的依赖关系,是在容器运行期间决定的,容器动态地将依赖关系注入到组件中,且不关心具体的对象或资源来自何处,这大大降低了对象间的耦合度。

一、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提供类植入和类加载器的实现

3. 消息模块

名称功能
spring-messaging提供消息功能支持

4. 数据访问模块

名称功能
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 模式来进行封装,简化其使用方式,以便开发人员开箱即用,不仅可以提高开发效率,还降低了耦合,提高了测试性和可移植性。

1. 目标原则

目标:

  • 为复杂的企业集成解决方案提供简单的模型
  • 便于开发基于异步、消息驱动行为的应用
  • 使现有 Spring 用户更直观、更循序渐进地使用

原则:

  • 降低组件的耦合度,增加了模块化和可测试性
  • 强制区分业务逻辑和组件集成逻辑
  • 扩展点是抽象的,增加了扩展性和可移植性

2. 支持组件

  1. Endpoint
  2. AMQP
  3. Spring ApplicationEvent
  4. File
  5. FTP/FTPS Adapters
  6. HTTP
  7. JDBC
  8. JPA
  9. JMS
  10. Mail
  11. MongoDb
  12. MQTT
  13. Redis
  14. Resource
  15. RMI
  16. RSocket
  17. SFTP Adapters
  18. STOMP
  19. Stream
  20. Syslog
  21. TCP and UDP
  22. WebFlux
  23. WebSockets
  24. Web Services
  25. XML
  26. Zookeeper

三、应用场景

Spring 框架由多个模块构成,它不是一个全有或者全无的解决方案,我们完全可以按照需求使用它的全部或者部分特性。

1. 典型完整的 Spring Web 应用程序

图片

Spring 完整使用场景:基于 Tomcat Servlet 容器,Web 层、业务层和数据持久层都使用 Spring 模块实现。

2. 使用第三方 Web 框架的应用程序

图片

整合第三方 Web 框架:基于 Tomcat Servlet 容器,Web 层使用 Struts 等其他框架,业务层和数据持久层都使用 Spring 模块实现。

3. 基于 RPC 的应用程序

图片

RPC 应用程序:基于 Tomcat Servlet 容器,使用Spring的 Hessian-,Rmi- 或HttpInvokerProxyFactoryBean 类构建远程调用程序。

4. 基于 EJB 的应用程序

图片

EJB 应用程序:Spring 提供访问层和抽象层来管理 EJB。

比如我们通常使用的 SSM 框架和 SSH 框架就是 Spring 框架和第三方框架的组合形式:

框架Web 层业务层数据持久层
SSMSpringMVCSpringMyBatis
SSHStrutsSpringHibernate

不管我们怎么搭建应用程序框架,Spring 都能很好的集成到我们应用程序中。

到此这篇关于Spring中的模块与应用场景详解的文章就介绍到这了,更多相关Spring模块与应用场景内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 谈Java static关键字的用法与好处

    谈Java static关键字的用法与好处

    这篇文章主要为大家详细介绍了Java static关键字的用法与好处,感兴趣的朋友可以参考一下
    2016-05-05
  • 快速解决springboot在yml配置了启动端口但启动还是8080问题

    快速解决springboot在yml配置了启动端口但启动还是8080问题

    这篇文章主要介绍了快速解决springboot在yml配置了启动端口但启动还是8080问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Java设计模式之命令模式

    Java设计模式之命令模式

    这篇文章介绍了Java设计模式之命令模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 利用Redis实现延时处理的方法实例

    利用Redis实现延时处理的方法实例

    这篇文章主要给大家介绍了关于利用Redis实现延时处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 解读Spring-Context的作用及用法

    解读Spring-Context的作用及用法

    这篇文章主要介绍了Spring-Context的作用及用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Java 设计模式之责任链模式及异步责任链详解

    Java 设计模式之责任链模式及异步责任链详解

    顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式
    2021-11-11
  • Java开发过程中关于异常处理的详解

    Java开发过程中关于异常处理的详解

    异常是程序中的一些错误,但不是所有错误都是异常,且错误有时候是可以避免的。比如说,你的代码少一个分号,那运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常
    2021-10-10
  • java中的final关键字详解及实例

    java中的final关键字详解及实例

    这篇文章主要介绍了 java中的final关键字详解及实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot基于RabbitMQ实现消息可靠性的方法

    SpringBoot基于RabbitMQ实现消息可靠性的方法

    RabbitMQ 提供了 publisher confirm 机制来避免消息发送到 MQ 过程中丢失,这种机制必须给每个消息指定一个唯一ID,消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功,本文给大家介绍了SpringBoot基于RabbitMQ实现消息可靠性的方法,需要的朋友可以参考下
    2024-04-04
  • SpringBoot自定义Banner使用详解

    SpringBoot自定义Banner使用详解

    这篇文章主要介绍了SpringBoot自定义Banner使用详解,启动 Spring Boot 时,几乎总是能在控制台上方看到如下横幅,这个也叫字符画、英文ASCII艺术字,这就是banner,我们来看一下如何使用,需要的朋友可以参考下
    2024-01-01

最新评论