梦入琼楼寒有月,行过石树冻无烟

Spring

Spring 简介

Spring 框架可以在任何类型的部署平台为基于Java Web现代的企业应用程序而提供的全面编程和配置模型。是当前主流的Java开发框架之一,为企业级应用开发提供了丰富的使用功能。

Spring 的意思

在Spring的官方API帮助文档中,有一句官方的表述是:
”Spring 在不同的上下文中表示不同的事物,他可以用于指代Spring Framework项目的本身,而Spirng的意识是寓意,这一切都是从这里开始的。随着时间的流逝,其他的Spring项目已经在Spring Framework基础上进行构建,通常人们说到Spirng的时候,他们将会表示整个项目的系列。如果有人跟你说的是Spring boot,那他一定不是泛指所有Spring项目,而是单指Spring boot这一系列。

Spring 概括

Spring是一个轻量级的开发框架,最初由Rod Johnson编写,在2003年6月首次在Apache 2.0许可证下发布,象征着Spring在那刻前正式开源,之后有很多开发者加入到一起来进行维护和开发,而Spring创建的主要目的就是解决企业应用开发的业务逻辑层的问题,是一个分层的轻量级开源框架(且一站式)

Spring 体系结构

Spring 常用结构

Spirng 本书所使用的结构

Data Access - Integration / World Wide Web(数据访问和集成/Web)

Data Access / Integration
ID DA FA
JDBC 提供了一个JDBC的抽象层 消除了繁琐的JDBC编码和数据库厂商特有的错误代码解析
ORM 对流行的对象关系映射API的集成(Object-Relational apping),包括JPA、Hibenate 使用Spring-ORM可将这些O/R映射框架与Spring提供的所有功能结合使用
OXM 提供了一个支持对象/XML映射的抽象层实现 如JAXB、Castor、XML Beans、JiBX、XStream等
JMS 指Java消息传递服务,包含了用于生产和使用的消息功能 自Spring 4.1以后,提供那个了与Spring-messaging模块的集成
World Wide Web
ID DA FA
Web-Socket 提供了对WebSocket-based的支持 在Web应用中可以实现Web前端全双工通信的协议。
Web-Servlet(webmvc) 包含了用于Web应用程序的Spring MVC和 REST Web Services实现 提供了Spring下的MVC框架可以使全领域模型代码和web表单完全的分离,与Spring框架和其他所有功能进行集成
Web 提供了基本的Web开发集成功能 多文件上传功能、使用Servlet监听器初始化一个Ioc容器以及Web应用上下文
Portlet (Spring-webmvc-portlet) 提供Portlet环境中使用MVC的实现,并反映了Spring-webmvc的模块功能
Webflux 是一个非阻塞式函数Reactive Web框架 可用于建立异步、非阻塞、事件驱动服务,并拥有很好的扩展性

AAIM(Aop、Aspects、Instrumentation、Messaging)

面向切面编程(AOP) 和 使用容器(Instrumentation)

该层主要有AOP、Aspects、Instrumentation、Messaging四个模块,其主要模块响应的功能有:

ID DA FA
AOP 提供了一个符合APO要求的面向切面的编程实现 允许在定义方法拦截器和切入点,可将代码按照功能进行分离,方便干净的进行解藕
Aspects 是一个强大且成熟的面向切面编程(AOP)框架 提供了AspectJ的集成功能
Instrumentation 提供了类植入(Instrumentation)支持和类的加载器实现,而Instrumentation提供了一种虚拟机级别的支持的AOP实现方式 无需对JDK进行改动或升级,可实现AOP的某些功能
消息(Spring-Messaging)

Messaging是Spring 4.0所增加的信息模块“Spring-messaging”,其主要提供了对信息传递的结构体系和协议支持,且支持为STOMP、WebSocket等子协议时候使用。

Spring 核心容器

Spring的核心容器是其他模块建立的基础部分,主要由Spring-core、Spring-beans、Spring-Context、Spring-context-support、Spring-expression(Spring表达式语言)模块所组成:

ID DA FA
Spring-core 提供了框架的基本组成部分 控制反转(ioc,Inversion of Control)、依赖注入(DI,Dependency Injection)
Spring-Beans 是工厂模式的经典实现,主要移除了编码式的单列需要,可从配置和以来从实际编码逻辑中耦合 提供了BeanFactory
Spring-context 主要建立在core、Beans之上,提供了一个框架式的对象访问方式,是一个访问定义、配置、任何对象的媒介 context
Spring-context-support 支持整合得到第三方库到Spring应用程序上下文,用于高速缓存(EhCache,JCache)和任务调度(COmmonJ,Quartz)的支持。
Spring-expression 提供了强大的表达式语言,用于在运行时查询和操作对象图 ,是JSP2.1规范中定义统一表达式语言扩展(Unified EL) 支持set和get属性值、属性赋值、方法调用、访问数组集合等索引内容,逻辑运算符、命名变量、通过名字从 ```Spring-Ioc容器检索对象,支持列表投影、选及其常见列表聚合
Spring-Beans 工厂模式

Spring-Beans工厂模式主要是代替了Java中的new 的实例化操作, 虽然这样做会做多一点工作,但是会增加整个项目的可扩展性。也就是说,当需要实例化类或方法的时候,new的工作会由一个class类所执行,所以在本类之中可以直接使用工厂模式进行开发。

⬅️ Go back