Spring模块与应用场景

简介: Spring框架是一个Java平台,它为Java应用程序提供全面的基础框架支持。它也是现在非常流行的开源框架,只要是做Java开发,肯定接触过Spring的使用,不管我们对它的了解如何,多或者少,我们还是要尽力挖掘出Spring的功能价值。


Spring框架的功能被分开为多个模块,如下图所示:

微信图片_20220518162938.png

一、模块



1. 核心容器

  • spring-core:Spring核心模块
  • spring-beans:Bean容器支持
  • spring-context:建立在Bean模块基础上,扩展了功能
  • spring-context-support:支持整合第三方库到Spring上下文
  • spring-expression:提供表达式语言


2. AOP和Instrumentation

  • spring-aop:提供AOP(页面切面编程)支持
  • spring-aspects:提供AspectJ的集成
  • spring-instrumentation:提供类植入支持和类加载器的实现


3. 消息

  • spring-messaging:消息传递模块


4. 数据访问/集成

  • spring-jdbc:提供JDBC抽象层
  • spring-tx:支持编程和声明式事务管理
  • spring-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组件进行单元测试和集成测试

在使用Maven或者其他构建工具管理项目时,可以选择性地添加Spring的依赖,使用什么或能就添加什么依赖。


7. 使用场景


7.1 典型的完整的Spring Web应用程序


微信图片_20220518163049.png这是Spring的完整使用案例,基于Tomcat Servlet容器,所有定制的业务逻辑都可以使用简单的POJO(普通Java类)实现,并由Spring的IoC容器进行管理,一般使用的结构是从上到下在项目中分层:

  • 顶层是MVC层,包括表单控制器,Multipart Resolver(文件上传解析器),动态绑定实体模型,集成JSP,Velocity等视图模板引擎。
  • 中间层是业务层,包括自定义业务,消息,以及远程访问
  • 底层是数据持久层,主要实现ORM映射


7.2 使用第三方Web框架的Spring中间层

微信图片77777.png

假设我们要使用Spring框架来重构一个项目,情况不允许你完全切换到另一个不同的框架。Spring框架不强制你使用它所有的功能,它不是一个全有或全无的解决方案,我们从它由多个模块组件的构成就可以看出。我们完全可以使用第三方Web框架,比如Struts、Tapestry、JSF等UI框架,它们都可以与基于Spring的中间层集成,从而使用Spring的IoC和事务等功能。而你只需要做的就是使用ApplicationContext来管理你的业务逻辑类,并使用WebApplicationContext来集成你的Web层。此时分层结构是:

  • 顶层是Web层,使用第三方Web框架
  • 中间层是业务层
  • 底层是数据持久层


7.3 远程使用场景

微信图片88888.png

你现在需要通过Web服务访问现有代码时,可以使用Spring的Hessian-,Rmi-或HttpInvokerProxyFactoryBean类,启用对现有应用程序的远程访问并不困难。


7.4 EJBs-包装现有的POJOs

微信图片99999.png

Spring还为EJBs(企业级JavaBean)提供了一个访问和抽象层,使你能够重用现有的POJO,并将其包装在无状态会话bean中。

通过上面的使用场景了解到Spring在企业项目中的应用和定位,我们完全可以按照自己的意愿选择性地使用Spring,比如搭建一个基于SSM框架的项目:

  • 控制层使用SpringMVC模块
  • 业务层使用Spring框架管理并且可以整合其他组件
  • 持久层使用Spring整合MyBatis完成对数据库的访问
目录
相关文章
|
1月前
|
SQL Java 数据库连接
Spring Data JPA 技术深度解析与应用指南
本文档全面介绍 Spring Data JPA 的核心概念、技术原理和实际应用。作为 Spring 生态系统中数据访问层的关键组件,Spring Data JPA 极大简化了 Java 持久层开发。本文将深入探讨其架构设计、核心接口、查询派生机制、事务管理以及与 Spring 框架的集成方式,并通过实际示例展示如何高效地使用这一技术。本文档约1500字,适合有一定 Spring 和 JPA 基础的开发者阅读。
159 0
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
406 3
|
7天前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
57 8
|
27天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
249 4
|
2月前
|
Java 应用服务中间件 开发者
Spring Boot 技术详解与应用实践
本文档旨在全面介绍 Spring Boot 这一广泛应用于现代企业级应用开发的框架。内容将涵盖 Spring Boot 的核心概念、核心特性、项目自动生成与结构解析、基础功能实现(如 RESTful API、数据访问)、配置管理以及最终的构建与部署。通过本文档,读者将能够理解 Spring Boot 如何简化 Spring 应用的初始搭建和开发过程,并掌握其基本使用方法。
224 2
|
2月前
|
人工智能 监控 安全
如何快速上手【Spring AOP】?核心应用实战(上篇)
哈喽大家好吖~欢迎来到Spring AOP系列教程的上篇 - 应用篇。在本篇,我们将专注于Spring AOP的实际应用,通过具体的代码示例和场景分析,帮助大家掌握AOP的使用方法和技巧。而在后续的下篇中,我们将深入探讨Spring AOP的实现原理和底层机制。 AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的核心特性之一,它能够帮助我们解决横切关注点(如日志记录、性能统计、安全控制、事务管理等)的问题,提高代码的模块化程度和复用性。
|
2月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
762 10
|
3月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
3月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
422 2
|
3月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
382 13