1.2 Spring概述

简介: Spring由Rod Johnson在2003年创建,它的目标就是要简化Java企业级应用程序的开发难度和复杂性。Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IoC(Inversion Of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心。

Spring简介

Spring由Rod Johnson在2003年创建,它的目标就是要简化Java企业级应用程序的开发难度和复杂性。

Spring是分层的JavaSE/EE应用full-stack轻量级开源框架,以IoC(Inversion Of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心。

Spring的优点

Spring是当前主流的Java EE开发框架,为开发企业级应用提供了健壮、高校的解决方案。Spring之所以如此流行,是因为它具有如下优点。

方便解耦,简化开发

通过Spring提供的IoC容器,把对象创建和对象之间的调用过程,交给Spring进行管理,避免硬编码所造成的过度程序耦合。

AOP编程的支持

AOP对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。

声明式事务的支持

在Spring中,可以通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

方便程序的测试

Spring提供了对JUnit的支持,可以通过注解方便的测试Spring程序。

方便集成各种优秀框架

Spring提供了对各种优秀框架的直接支持,如Struts、Hibernate、MyBatis、Quartz等,降低各种框架的使用难度。

降低Java EE API的使用难度

Spring对很多Java EE API提供了封装,如JDBC、JavaMail等,使这些Java EE API的使用难度大为降低。

Spring5的体系结构

Spring框架的功能被有组织地分散到20个模块中,这些模块是核心容器(Core Container)层、数据访问/集成(Data Access/Integration)层、Web层、面向切面编程(Aspect Oriented Programming,AOP)模块、植入(Instrumentation,)模块、消息传输(Messaging)模块和测试(Test)模块,如下图所示。


Core Container

Core Container在Spring的功能体系中起着支撑作用,是其他模块建立的基础。核心容器层主要由Beans模块、Core模块、Context模块和SpEL模块组成,各个模块介绍如下。

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

Core模块,提供了框架的基本组成部分,包括控制反转(Inversion of Control,IoC)和依赖注入(Dependence Injection,DI)功能。

Context模块,构建于Beans模块和Core模块基础上,它是访问定义和配置任何对象的媒介,ApplicationContext接口是上下文模块的焦点。

SpEL模块,提供了一种强大的表达式语言,用于在运行时查询和操作对象图。它是JSP2.1规范中指定的统一表达式语言(unified EL)的扩展。该语言支持设置和获取属性值、属性分配、方法调用、访问数组内容、集合和索引器、逻辑和算术运算符、命名变量,以及从Spring的IoC容器中按名称检索对象。它还支持列表投影和选择以及常见的列表聚合。

AOP和Instrumentation

Spring框架中与AOP和Instrumentation相关的模块有AOP模块、Aspects模块和Instrumentation模块,各个模块介绍如下。

AOP模块,提供了一个符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净的解耦。

Aspects模块,提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的AOP框架。

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

Messaging

Spring4.0以后新增了Messaging模块,该模块提供了对消息传递体系结构和协议的支持。

Data Access/Integration

数据访问/集成层由JDBC、ORM、OXM、JMS和Transaction模块组成。

JDBC模块,提供了一个JDBC的抽象层,消除了繁琐的JDBC编码和数据库厂商特有的错误代码解析。

ORM模块,为主流的对象关系映射API提供集成层,包括JPA、JDO和Hibernate。使用spring-orm模块,可以将这些O/R映射框架与Spring提供的所有其他功能结合使用,例如声明式管理事务功能。

OXM模块,提供一个支持对象/XML映射的抽象层实现,如JAXB、Castor、XML Beans、JiBX和XStream。

JMS模块,指Java消息传递服务,包含用于生产和使用消息的功能。自Spring Framework4.1以来,它提供了与spring-messaging模块的集成。

Transaction模块,支持用于实现特殊接口和所有POJO(普通Java对象)类的编程和声明式事务管理。

Web

Web层包括spring-web、spring-webmvc、spring-websocket和spring webflux模块。

spring-web模块,提供了基本的web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个IoC容器以及web应用上下文。此外,Web模块还包含了一个HTTP客户端和Spring远程处理支持的web相关部分。

spring-webmvc模块,也称Web-Servlet模块,包含用于web应用程序的Spring MVC和REST Web Services实现。Spring MVC框架提供了领域模型代码和web表单之间的清晰分离,并与Spring框架的所有其他功能集成。

spring-websocket模块,提供了WebSocket和SockJS的实现,以及对SMOPT的支持。

spring-webflux模块,是一个非阻塞函数式Reactive Web框架,可以用来建立异步的、非阻塞、事件驱动的服务,并且扩展性非常好。

Test

spring-test模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

目录
相关文章
|
4月前
|
设计模式 开发框架 Java
Spring及工厂模式概述
Spring及工厂模式概述
45 8
|
3月前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
37 1
|
1月前
|
Java API Spring
Spring5入门到实战------1、Spring5框架概述、入门案例
这篇文章是Spring5框架的入门教程,概述了Spring框架的核心概念和特点,并通过一个创建普通Java类的案例,详细演示了从下载Spring核心Jar包、创建配置文件、编写测试代码到运行测试结果的完整流程,涵盖了Spring IOC容器的使用和依赖注入的基本用法。
|
4月前
|
安全 前端开发 Java
学习从Struts迁移到Spring的策略概述
从Struts框架迁移到Spring框架是一个常见的升级路径,主要是为了利用Spring框架提供的更多功能、更好的模块化支持以及更广泛的社区资源。
73 3
|
3月前
|
XML 开发框架 Java
Spring框架第一篇(Spring概述与IOC思想)
Spring框架第一篇(Spring概述与IOC思想)
|
3月前
|
开发框架 前端开发 Java
Spring概述(1)
Spring概述(1)
38 0
|
4月前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
64 1
|
4月前
|
安全 Java 大数据
Spring概述、系统架构及核心概念
Spring概述、系统架构及核心概念
195 0
|
4月前
|
安全 Java API
第1章 Spring Security 概述(2024 最新版)(下)
第1章 Spring Security 概述(2024 最新版)
73 0
|
4月前
|
安全 Java 数据安全/隐私保护
第1章 Spring Security 概述(2024 最新版)(上)
第1章 Spring Security 概述(2024 最新版)
86 0