ToB企服应用市场:ToB评测及商务社交产业平台

标题: Spring框架 - Spring和Spring框架组成 [打印本页]

作者: 小小小幸运    时间: 2022-6-23 14:27
标题: Spring框架 - Spring和Spring框架组成
Spring框架 - Spring和Spring框架组成

Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢? 本文通过这几个问题帮助你构筑Spring和Spring Framework的整体认知。@pdai

什么是Spring?

首先,Spring是什么?它是怎么诞生的?它的诞生是为了解决什么问题?@pdai
Spring的起源

百度百科中关于Spring的起源介绍如下:
要谈Spring的历史,就要先谈J2EE。J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。
曾经使用过EJB开发JAVA EE应用的人,一定知道,在EJB开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易的理解。EJB要严格地实现各种不同类型的接口,类似的或者重复的代码大量存在。而配置也是复杂和单调,同样使用JNDI进行对象查找的代码也是单调而枯燥。虽然有一些开发工作随着xdoclet的出现,而有所缓解,但是学习EJB的高昂代价,和极低的开发效率,极高的资源消耗,都造成了EJB的使用困难。而Spring出现的初衷就是为了解决类似的这些问题。
Spring的一个最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Ordinary Java Object)对象提供企业级的服务。
Spring的形成,最初来自Rod Jahnson所著的一本很有影响力的书籍《Expert One-on-One J2EE Design and Development》,就是在这本书中第一次出现了Spring的一些核心思想,该书出版于2002年。
Spring的特性和优势

Spring Framework有哪些特性,用了这个框架对开发而言有什么好处呢?
从Spring 框架的特性来看:
从使用Spring 框架的好处看:
Spring有哪些组件?

Spring Framework有哪些组件呢?
下图来自,官方文档 Spring-framework 5.0;需要注意的是,虽然这个图来源于Spring Framwork5.0 M4 版本,但是它依然是V4版本的图,比如Spring 5版本中的web模块已经去掉了Portlet模块,新增了WebFlux模块等。

上图中包含了 Spring 框架的所有模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。下面分别对这些模块的作用进行简单介绍(并且结合SpringFramework5.x源码模块帮助你对应好各模块关系)。
Core Container(Spring的核心容器)

Spring 的核心容器是其他模块建立的基础,由 Beans 模块、Core 核心模块、Context 上下文模块和 SpEL 表达式语言模块组成,没有这些核心容器,也不可能有 AOP、Web 等上层的功能。具体介绍如下。
对应的源码模块如下:

Data Access/Integration(数据访问/集成)

数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块,具体介绍如下。
对应的源码模块如下:

Web模块

Spring 的 Web 层包括 Web、Servlet、WebSocket 和 Webflux 组件,具体介绍如下。
此外Spring4.x中还有Portlet 模块,在Spring 5.x中已经移除
对应的源码模块如下:

AOP、Aspects、Instrumentation和Messaging

在 Core Container 之上是 AOP、Aspects 等模块,具体介绍如下:
对应的源码模块如下:

Test模块

Test 模块:Spring 支持 Junit 和 TestNG 测试框架,而且还额外提供了一些基于 Spring 的测试功能,比如在测试 Web 框架时,模拟 Http 请求的功能。
包含Mock Objects, TestContext Framework, Spring MVC Test, WebTestClient。
对应的源码模块如下:

为什么用Spring?

那么为什么用Spring呢?来看看官网对这个问题的回答
最重要的体现在它能做什么,这是Spring的核心所在

且官方对此专门对此做了详细介绍,感兴趣可以看下

学习Spring时参考哪些资料呢?

非常负责任的告诉你,最好最全的资料在Spring的官网,Spring能成为最主要的企业开发框架,文档和生态体系也做的很好;这里介绍下如何获取官方的学习资源。@pdai
Spring 的官方项目和教程

官方的项目和教程,地址在这里,在学习Spring时,一定要把它当做生态体系,而是不是一个简单的开发框架。

Spring 的归档文档

官方提供了系统性的文档的FTP,你可以在这里找到所有历史版本的PDF/HTML版本。

可以看到很多系统性的文档,包括上面引用的图,


Spring 的官方Github

Spring官方的GitHub在这里,它包含着Spring-framework的源码,如果你感兴趣,可以从这里clone代码进行阅读。

更多文章

首先, 从Spring框架的整体架构和组成对整体框架有个认知。

其次,通过案例引出Spring的核心(IoC和AOP),同时对IoC和AOP进行案例使用分析。

基于Spring框架和IOC,AOP的基础,为构建上层web应用,需要进一步学习SpringMVC。

Spring进阶 - IoC,AOP以及SpringMVC的源码分析


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4