Spring 框架介绍 [Spring 优势][Spring 应用领域][体系结构][目录结构][基础 jar 包]

您的“关注”和“点赞”,是信任,是承认,是支持,是动力......web

如意见相佐,可留言。
本人必将不遗余力试图作到准确和全面,终其一辈子进行修改补充更新。spring

1 Spring 框架概述

能够看一下官网给出的介绍,以下图所示:
在这里插入图片描述数据库

Spring 是一个主流的 Java Web 开发框架,该框架是一个轻量级的应用框架,具备很高的凝聚力和吸引力。Spring使每一个人均可以更快,更轻松,更安全地进行Java编程。Spring对速度,简单性和生产率的关注使其成为世界上最受欢迎的 Java框架。express

Spring 是分层的 Java SE/EE full-stack 轻量级开源框架,以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核,使用基本的 JavaBean 完成之前只可能由 EJB 完成的工做,取代了 EJB 臃肿和低效的开发模式。apache

在实际开发中,一般服务器端采用三层体系架构,分别为表现层(web)、业务逻辑层(service)、持久层(dao)。Spring 对每一层都提供了技术支持,在表现层提供了与 Struts2 框架的整合,在业务逻辑层能够管理事务和记录日志等,在持久层能够整合 Hibernate 和 JdbcTemplate 等技术。编程

2 Spring 的优势

Spring 框架的主要优势具体以下所示:缓存

  • Spring 无处不在
    Spring灵活的库受到全世界开发人员的信任。Spring天天为数百万终端用户提供愉快的体验——不管是流媒体电视、联网汽车、在线购物,仍是其余无数的创新解决方案。Spring也有来自全部科技领域的巨头的贡献,包括阿里巴巴、亚马逊(Amazon)、谷歌、微软(Microsoft)等等。安全

  • Spring 是易扩展的,方便集成各类优秀框架
    Spring灵活而全面的扩展集和第三方库让开发人员能够构建几乎任何能够想象获得的应用程序。在其核心,Spring框架的控制反转(IoC)和依赖项注入(DI)特性为普遍的特性和功能集提供了基础。不管您是为web构建安全的、反应性的、基于云的微服务,仍是为企业构建复杂的流数据流,Spring都有工具能够提供帮助。服务器

  • 方便解耦,易于开发(简化开发)
    Spring 就是一个大工厂,能够将全部对象的建立和依赖关系的维护交给 Spring 管理。微信

  • Spring 速度快
    Spring 的工程师很是关心性能。在 Spring 中,默认状况下,您会注意到快速启动、快速关闭和优化执行。Spring 项目也愈来愈多地支持反应式(非阻塞)编程模型,以得到更高的效率。开发人员的生产力是 Spring 的超能力。与其余竞争范例相比,Spring Boot 帮助开发人员轻松构建应用程序,并且工做量要少得多。嵌入式 web 服务器、自动配置和“胖罐”帮助您快速入门,而 Spring DevTools 中的 LiveReload 等创新意味着开发人员能够比之前更快地迭代。您甚至能够在几秒钟内启动一个新的 Spring 项目,Spring Initializr 位于 start. Spring .io。

  • Spring 是安全的
    Spring在快速和负责地处理安全问题方面有可靠的记录。Spring提交者与安全专业人员一块儿工做,修补和测试任何报告的漏洞。第三方依赖关系也被密切监视,并按期发布更新,以帮助尽量地保证数据和应用程序的安全性。此外,Spring Security使您更容易与行业标准的安全方案集成,并交付默认安全的可靠解决方案。

  • Spring 社区很庞大,备受支持
    Spring 社区是一个庞大的、全球性的、多样化的社区,跨越了全部年龄和能力的人,从彻底的初学者到经验丰富的专业人士。不管你在旅途的哪一个地方,你均可以找到你须要的支持和资源来帮助你进入下一个阶段:快速入门、指南和教程、视频、聚会、支持,甚至是正式的培训和认证。

Spring 框架的其余优势具体以下所示:

  • 方便程序的测试
    Spring 支持 JUnit4,能够经过注解方便地测试 Spring 程序。
  • AOP 编程的支持
    Spring 提供面向切面编程,能够方便地实现对程序进行权限拦截和运行监控等功能。
  • 声明式事务的支持
    只须要经过配置就能够完成对事务的管理,而无须手动编程。

3 Spring 的应用领域

Spring 能够应用于微服务(Microservices)、响应式编程(Reactive)、云(Cloud)、网络应用(Web app)、无服务器(Serverless)、事件驱动(Event Driven)、批处理(Batch)等任何 Java 应用的开发中。

4 Spring 体系结构

4.1 Spring 体系结构概述

Spring 框架采用分层架构,根据不一样的功能被划分红了多个模块,这些模块大致可分为 Data Access/Integration 层Web 层AOP 层Aspects 层Instrumentation 层Messaging 层Core Container 层Test 层,这些模块能够知足一切企业级应用开发的需求,在开发过程当中能够根据需求有选择性地使用所须要的模块。

Spring 体系结构图以下所示。
在这里插入图片描述

4.2 各个模块介绍

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

数据访问/集成层包括 JDBC、ORM、OXM、JMS 和 Transactions 模块,具体介绍以下所示:

  • JDBC 模块:提供了一个 JDBC 的抽象层,大幅度减小了在开发过程当中对数据库操做的代码。
  • ORM 模块:对流行的对象关系映射 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的集成层。
  • OXM 模块:提供了一个支持对象/XML 映射的抽象层实现,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
  • JMS 模块:指 Java 消息服务,包含的功能为生产和消费的信息。
  • Transactions 事务模块:支持编程和声明式事务管理实现特殊接口类,并为全部的 POJO。

(2)Web 层

Spring 的 Web 层包括 Web、Servlet、Struts 和 Portlet 模块,具体介绍以下所示:

  • Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IoC 容器初始化以及 Web 应用上下文。
  • Servlet 模块:包括 Spring 模型—视图—控制器(MVC)实现 Web 应用程序。
  • Struts 模块:包含支持类内的 Spring 应用程序,集成了经典的 Struts Web 层。
  • Portlet 模块:提供了在 Portlet 环境中使用 MV C实现,相似 Web-Servlet 模块的功能。

(3)Core Container(核心容器)层

Spring 的核心容器是其余模块创建的基础,由 Beans 模块、Core 核心模块、Context 上下文模块和 Expression Language 表达式语言模块组成,具体介绍以下所示:

  • Beans 模块:提供了 BeanFactory,是工厂模式的经典实现(很成熟的实现),Spring 将管理对象称为 Bean。
  • Core 核心模块:提供了 Spring 框架的基本组成部分,包括 IoC 和 DI 功能。
  • Context 上下文模块:创建在核心和 Beans 模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext 接口是上下文模块的焦点。
  • Expression Language 模块:是运行时查询和操做对象图的强大的表达式语言。

(4)其余模块

Spring的其余模块还有 AOP、Aspects、Instrumentation 以及 Test 模块,具体介绍以下所示:

  • AOP 模块:提供了面向切面编程实现,容许定义方法拦截器和切入点,将代码按照功能进行分离,以下降耦合性。
  • Aspects 模块:提供与 AspectJ 的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。
  • Instrumentation 模块:提供了类工具的支持和类加载器的实现,能够在特定的应用服务器中使用。
  • Test 模块:支持 Spring 组件,使用 JUnit 或 TestNG 框架的测试。

5 Spring 目录结构

5.1 Spring 框架下载

目前 Spring 框架的最新版本是5.2.6,能够去官网下载

官网下载地址:

https://repo.spring.io/webapp/#/artifacts/browse/tree/General/libs-release-local/org/springframework/spring/5.2.6.RELEASE/spring-5.2.6.RELEASE-dist.zip

以下图所示,点击Download下载名称为 spring-5.2.6.RELEASE-dist.zip 的压缩包。

在这里插入图片描述

5.2 Spring 框架目录结构介绍

下载完成后,解压文件 spring-5.2.6.RELEASE-dist.zip能够获得spring-framework-5.2.6.RELEASE文件夹,以下图所示。
在这里插入图片描述

打开spring-framework-5.2.6.RELEASE文件夹,能够看到以下图所示内容。
在这里插入图片描述

对上图中的目录说明,

  • docs目录:Spring 的 API 文档和开发规范。
  • libs目录:开发须要的 JAR 包和源码包。
  • schema目录:开发所须要的 schema 文件,在这些文件中定义了 Spring 相关配置文件的约束。

6 Spring 框架的四个基础 JAR 包

libs 目录中,包含了 Spring 框架提供的全部 JAR 文件,其中有四个 JAR 文件是 Spring 框架的基础包,分别对应 Spring 容器的四个模块,具体以下所示:

  • spring-beans-5.2.6.RELEASE.jar:全部应用都要用到的,它包含访问配置文件、建立和管理 bean 以及进行 Inversion of Control(IoC)或者 Dependency Injection(DI)操做相关的全部类。
  • spring-context-5.2.6.RELEASE.jar:Spring 提供在基础 IoC 功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI 定位、EJB 集成、远程访问、缓存以及各类视图层框架的封装等
  • spring-core-5.2.6.RELEASE.jar:包含 Spring 框架基本的核心工具类,Spring 其余组件都要用到这个包中的类,是其余组件的基本核心。
  • spring-expression-5.2.6.RELEASE.jar:定义了 Spring 的表达式语言。

7 使用 Spring 框架时,必须导入的 JAR 包

在使用 Spring 框架开发时,除了 Spring 自带的 JAR 包之外,还须要一个第三方 JAR 包 commons-logging-1.2.jar 处理日志信息。

也就是说在使用 Spring 框架时,咱们至少要将 Spring 框架的四个基础 JAR 包以及commons-logging-1.2.jar包复制到项目的 libs 目录,并发布到类路径中便可。以下图所示:

在这里插入图片描述

8 文章其余地址

8.1 微信公众号:码农阿杰

8.2 CSDN 博客

9 参考资料地址

9.1 spring

9.2 Artifact Repository Browser

9.3 Apache Commons

相关文章
相关标签/搜索