Spring 框架 - 概述


Spring 是最流行的企业 Java 应用程序开发框架。全球数以百万计的开发人员使用 Spring 框架来创建高性能、易于测试和可重用的代码。

Spring框架是一个开源的Java平台。它最初由 Rod Johnson 编写,并于 2003 年 6 月首次在 Apache 2.0 许可证下发布。

Spring 在尺寸和透明度方面是轻量级的。Spring框架的基础版大小在2MB左右。

Spring 框架的核心功能可用于开发任何 Java 应用程序,但也有用于在 Java EE 平台上构建 Web 应用程序的扩展。Spring 框架的目标是使 J2EE 开发更易于使用,并通过启用基于 POJO 的编程模型来促进良好的编程实践。

使用 Spring 框架的好处

以下是使用 Spring 框架的一些巨大好处的列表 -

  • Spring 使开发人员能够使用 POJO 开发企业级应用程序。仅使用 POJO 的好处是您不需要 EJB 容器产品(例如应用程序服务器),但您可以选择仅使用强大的 servlet 容器(例如 Tomcat 或某些商业产品)。

  • Spring 以模块化方式组织。尽管包和类的数量很大,但您只需担心您需要的包和类,而忽略其余的。

  • Spring 并没有重新发明轮子,而是真正利用了一些现有的技术,例如一些 ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器以及其他视图技术。

  • 测试用 Spring 编写的应用程序很简单,因为依赖于环境的代码已移至该框架中。此外,通过使用 JavaBeanstyle POJO,使用依赖注入来注入测试数据变得更加容易。

  • Spring 的 Web 框架是一个设计良好的 Web MVC 框架,它为 Struts 等 Web 框架或其他过度设计或不太流行的 Web 框架提供了一个很好的替代方案。

  • Spring 提供了一个方便的 API,用于将特定于技术的异常(例如,由 JDBC、Hibernate 或 JDO 引发的异常)转换为一致的、未经检查的异常。

  • 轻量级 IoC 容器往往是轻量级的,尤其是与 EJB 容器相比。这有利于在内存和CPU资源有限的计算机上开发和部署应用程序。

  • Spring 提供了一致的事务管理接口,可以缩小到本地事务(例如使用单个数据库)并扩展到全局事务(例如使用 JTA)。

依赖注入(DI)

Spring 最受认可的技术是控制反转的依赖注入 (DI)风格。控制反转(IoC)是一个通用概念,可以用多种不同的方式表达。依赖注入只是控制反转的一个具体示例。

在编写复杂的 Java 应用程序时,应用程序类应尽可能独立于其他 Java 类,以增加重用这些类并在单元测试时独立于其他类进行测试的可能性。依赖注入有助于将这些类粘合在一起,同时保持它们的独立性。

到底什么是依赖注入?我们分别来看这两个词。这里的依赖部分转化为两个类之间的关联。例如,A类依赖于B类。现在,我们看第二部分,注入。所有这些意味着,B 类将由 IoC 注入到 A 类中。

依赖注入可以通过将参数传递给构造函数或使用 setter 方法进行后构造的方式发生。由于依赖注入是 Spring 框架的核心,我们将在单独的章节中通过相关示例来解释这个概念。

面向方面编程(AOP)

Spring 的关键组件之一是面向方面编程(AOP)框架。跨越应用程序多个点的功能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑是分开的。方面有各种常见的好例子,包括日志记录、声明性事务、安全性、缓存等。

OOP 中模块化的关键单元是类,而 AOP 中模块化的单元是方面。DI 帮助您将应用程序对象彼此解耦,而 AOP 帮助您将横切关注点与其影响的对象解耦。

Spring框架的AOP模块提供了面向方面的编程实现,允许您定义方法拦截器和切入点,以干净地解耦实现应该分离的功能的代码。我们将在单独的章节中讨论更多有关 Spring AOP 概念的内容。