什么是Spring框架?Spring有什么优势?Spring核心模块有哪些?

 简介

 Spring 是一个以 IoC 和 AOP 为基础的Java EE轻量级开源框架,其目的是用于简化 Java 企业级应用的开发难度和开发周期。

        广义上的 Spring 泛指Spring Framework 为核心的 Spring 技术栈。例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。

        狭义的 Spring 特指 Spring Framework,通常我们将它称为 Spring 框架。Spring 框架是一个分层的、面向切面Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。Spring框架最核心的模块是IoC(“控制反转”) AOP(“面向切面编程”),并且提供了丰富的基础模块功能:依赖注入(Dependency Injection),事务管理,数据访问,消息传递,以及其他各种应用程序层面的功能。
 

Spring优势

  1. 依赖注入(Dependency Injection,DI):Spring通过DI来管理应用程序中的组件和对象之间的关系。DI允许你将组件的依赖关系从代码中解耦,使应用程序更加灵活、可测试和可维护。

  2. 面向切面编程(Aspect-Oriented Programming,AOP):Spring支持AOP,允许你将横切关注点(cross-cutting concerns)(如日志记录、事务管理)从应用程序的核心逻辑中分离出来,以提高代码的模块化性。

  3. 声明式事务的⽀持:Spring提供了强大的事务管理支持,允许你在应用程序中声明式地管理数据库事务,通过使用配置文件或者注解@Transactional 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量,确保数据一致性和可靠性。

  4. 数据访问与集成:Spring简化了与各种数据存储和集成技术(如JDBC、JPA、Hibernate、JMS等)的交互,使数据访问更加便捷,更方便使用各种优秀框架。

  5. 模块化:Spring应用程序可以被分成多个模块,每个模块可以独立开发、测试和部署,然后组合在一起形成一个完整的应用程序。

  6. IoC容器:Spring框架提供了一个IoC(Inversion of Control)容器,用于管理和组装应用程序中的组件。这个容器负责创建、配置和管理对象的生命周期。

  7. 框架整合:Spring可以轻松集成其他框架和技术,如Spring Boot、Spring Security、Spring Cloud等,以满足不同应用程序的需求。

  8. 测试支持:Spring提供了广泛的测试支持,包括单元测试和集成测试,可以用非容器依赖的编程方式进行几乎所有的测试工作,使开发人员能够更容易地编写可测试的代码。

  9. 降低 JavaEE API 的使⽤难度:Spring 对 JavaEE API (如 JDBC 、 JavaMail 、远程调⽤等)进⾏了薄薄的封装层,使这些 API的使用难度大为降低。

  10. 源码是经典的 Java 学习范例:Spring 的源代码设计精妙、结构清晰、匠心独⽤,处处体现着大师对 Java 设计模式灵活运⽤以及对Java 技术的⾼深造诣。它的源代码⽆意是 Java 技术的最佳实践的范例。

Spring核心模块

Spring框架由大约20个模块组成,这些模块分为Test、Core Container(核心容器)、Data Access/Integration(数据访问/集成)、Web、AOP/Aspect(应⽤对象解耦)、Instrumentation和Messaging(检测消息),如下图所示:

Spring框架的所有模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。

1、Spring Core(核心容器):spring core提供了IOC,DI,Bean配置装载创建的核心实现。

spring-core :IOC和DI的基本实现
spring-beans:BeanFactory和Bean的装配管理(BeanFactory)
spring-context:Spring context上下文,即IOC容器(AppliactionContext)
spring-expression:spring表达式语言
②Spring AOP:对⾯向切⾯编程提供了丰富的⽀持。这个模块是Spring应 ⽤系统中开发切⾯的基础,与DI⼀样,AOP可以帮助应⽤对象解耦。

spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy
spring-aspects:集成AspectJ(AOP应用框架)
spring-instrument:动态Class Loading模块
③Spring Data Access

spring-jdbc:spring对JDBC的封装,用于简化jdbc操作
spring-orm:java对象与数据库数据的映射框架
spring-oxm:对象与xml文件的映射框架
spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信
spring-tx:spring jdbc事务管理
④Spring Web

spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器
spring-webmvc:实现web mvc
spring-websocket:与前端的全双工通信协议
spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务
⑤Spring Message

Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务
⑥Spring test

spring-test:集成测试支持,主要是对junit的封装
转载自:Spring框架介绍_spring是什么框架_leiyufei的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值