关于java:动力节点杜聚宾老师Spring6学习笔记2Spring概述

59次阅读

共计 2304 个字符,预计需要花费 6 分钟才能阅读完成。

2.1 Spring 简介

Spring 是一个开源框架,它由 Rod Johnson 创立。它是为了解决企业应用开发的复杂性而创立的。
从简略性、可测试性和松耦合的角度而言,任何 Java 利用都能够从 Spring 中受害。
Spring 是一个轻量级的管制反转 (IoC) 和面向切面 (AOP) 的容器框架。
Spring 最后的呈现是为了解决 EJB 臃肿的设计,以及难以测试等问题。
Spring 为简化开发而生,让程序员只需关注外围业务的实现,尽可能的不再关注非业务逻辑代码(事务管制,平安日志等)。

2.2 Spring8 大模块

留神:Spring5 版本之后是 8 个模块。在 Spring5 中新增了 WebFlux 模块。

  1. Spring Core 模块

这是 Spring 框架最根底的局部,它提供了依赖注入(DependencyInjection)特色来实现容器对 Bean 的治理。外围容器的次要组件是 BeanFactory,BeanFactory 是工厂模式的一个实现,是任何 Spring 利用的外围。它应用 IoC 将利用配置和依赖从理论的利用代码中分离出来。

  1. Spring Context 模块

如果说外围模块中的 BeanFactory 使 Spring 成为容器的话,那么上下文模块就是 Spring 成为框架的起因。
这个模块扩大了 BeanFactory,减少了对国际化(I18N)音讯、事件流传、验证的反对。另外提供了许多企业服务,例如电子邮件、JNDI 拜访、EJB 集成、近程以及时序调度(scheduling)服务。也包含了对模版框架例如 Velocity 和 FreeMarker 集成的反对

  1. Spring AOP 模块

Spring 在它的 AOP 模块中提供了对面向切面编程的丰盛反对,Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过应用 Spring AOP,不必依赖组件,就能够将申明性事务管理集成到应用程序中,能够自定义拦截器、切点、日志等操作。

  1. Spring DAO 模块

提供了一个 JDBC 的形象层和异样层次结构,打消了繁缛的 JDBC 编码和数据库厂商特有的错误代码解析,用于简化 JDBC。

  1. Spring ORM 模块

Spring 提供了 ORM 模块。Spring 并不试图实现它本人的 ORM 解决方案,而是为几种风行的 ORM 框架提供了集成计划,包含 Hibernate、JDO 和 iBATIS SQL 映射,这些都听从 Spring 的通用事务和 DAO 异样层次结构。

  1. Spring Web MVC 模块

Spring 为构建 Web 利用提供了一个性能全面的 MVC 框架。尽管 Spring 能够很容易地与其它 MVC 框架集成,例如 Struts,但 Spring 的 MVC 框架应用 IoC 对管制逻辑和业务对象提供了齐全的拆散。

  1. Spring WebFlux 模块

Spring Framework 中蕴含的原始 Web 框架 Spring Web MVC 是专门为 Servlet API 和 Servlet 容器构建的。反应式堆栈 Web 框架 Spring WebFlux 是在 5.0 版的前期增加的。它是齐全非阻塞的,反对反应式流 (Reactive Stream) 背压,并在 Netty,Undertow 和 Servlet 3.1+ 容器等服务器上运行。

  1. Spring Web 模块

Web 上下文模块建设在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文,提供了 Spring 和其它 Web 框架的集成,比方 Struts、WebWork。还提供了一些面向服务反对,例如:实现文件上传的 multipart 申请。

2.3 Spring 特点

  1. 轻量

    1. 从大小与开销两方面而言 Spring 都是轻量的。残缺的 Spring 框架能够在一个大小只有 1MB 多的 JAR 文件里公布。并且 Spring 所需的解决开销也是微不足道的。
    2. Spring 是非侵入式的:Spring 利用中的对象不依赖于 Spring 的特定类。
  2. 管制反转

    1. Spring 通过一种称作管制反转(IoC)的技术促成了松耦合。当利用了 IoC,一个对象依赖的其它对象会通过被动的形式传递进来,而不是这个对象本人创立或者查找依赖对象。你能够认为 IoC 与 JNDI 相同——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象申请就被动将依赖传递给它。
  3. 面向切面

    1. Spring 提供了面向切面编程的丰盛反对,容许通过拆散利用的业务逻辑与零碎级服务(例如审计(auditing)和事务(transaction)治理)进行内聚性的开发。利用对象只实现它们应该做的——实现业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的零碎级关注点,例如日志或事务反对。
  4. 容器

    1. Spring 蕴含并治理利用对象的配置和生命周期,在这个意义上它是一种容器,你能够配置你的每个 bean 如何被创立——基于一个可配置原型(prototype),你的 bean 能够创立一个独自的实例或者每次须要时都生成一个新的实例——以及它们是如何互相关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们常常是宏大与轻便的,难以使用。
  5. 框架

    1. Spring 能够将简略的组件配置、组合成为简单的利用。在 Spring 中,利用对象被申明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多根底性能(事务管理、长久化框架集成等等),将应用逻辑的开发留给了你。

所有 Spring 的这些特色使你可能编写更洁净、更可治理、并且更易于测试的代码。它们也为 Spring 中的各种模块提供了根底反对。

2.4 能源节点老杜 spring6 教程软件版本

  • IDEA 工具:2022.1.4
  • JDK:Java17(Spring6 要求 JDK 最低版本是 Java17)
  • Maven:3.8.6
  • Spring:6.0.0-M2
  • JUnit:4.13.2
正文完
 0