Spring 框架
Spring 框架是一个开源 Java 平台,它为非常容易和非常快速地开发健壮的 Java 应用程序提供全面的基础架构支持
Spring 框架最初由 Rod Johnson 开发,并于 2003 年 6 月在 Apache 2.0 许可下首次发布。
Spring 是最流行的企业 Java 应用程序开发框架。 全球数以百万计的开发人员使用 Spring Framework 来创建高性能、易于测试和可重用的代码。
Spring 的一个关键元素是应用程序级别的基础设施支持:Spring 专注于企业应用程序的“管道”,因此团队可以专注于应用程序级别的业务逻辑,而无需与特定部署环境建立不必要的联系。
Spring 的应用
以下是使用 Spring 框架的几个好处
- 基于 POJO - Spring 使开发人员能够使用 POJO 开发企业级应用程序。仅使用 POJO 的好处是不需要 EJB 容器产品(例如应用程序服务器),但可以选择仅使用健壮的 servlet 容器(例如 Tomcat 或某些商业产品)。
- 模块化 - Spring 以模块化方式组织。尽管包和类的数量很多,但我们只需要担心我们需要的,而忽略其余的。
- 与现有框架的集成——Spring 并没有重新发明轮子,而是真正利用了一些现有技术,如几个 ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器以及其他视图技术。
- 可测试性——测试用 Spring 编写的应用程序很简单,因为依赖于环境的代码被移到了这个框架中。此外,通过使用 JavaBeanstyle POJO,使用依赖注入来注入测试数据变得更加容易。
- Web MVC - Spring 的 Web 框架是一个设计良好的 Web MVC 框架,它为诸如 Struts 或其他过度设计或不太流行的 Web 框架之类的 Web 框架提供了一个很好的替代方案。
- 中央异常处理——Spring 提供了一个方便的 API 来将特定于技术的异常(例如,由 JDBC、Hibernate 或 JDO 抛出)转换为一致的、未经检查的异常。
- 轻量级 - 轻量级 IoC 容器往往是轻量级的,例如,与 EJB 容器相比时尤其如此。这有利于在内存和 CPU 资源有限的计算机上开发和部署应用程序。
- 事务管理——Spring 提供了一个一致的事务管理接口,可以缩小到本地事务(例如,使用单个数据库)并扩展到全局事务(例如,使用 JTA)。
依赖注入 Dependency Injection (DI)
Spring 最受认同的技术是控制反转的依赖注入 (DI) 风格。控制反转 (IoC) 是一个通用概念,可以用多种不同的方式表示。依赖注入只是控制反转的一个具体例子。
在编写复杂的 Java 应用程序时,应用程序类应尽可能独立于其他 Java 类,以增加重用这些类的可能性,并在单元测试时独立于其他类对其进行测试。依赖注入有助于将这些类粘合在一起,同时保持它们独立。
究竟什么是依赖注入?我们分别来看这两个词。这里依赖部分转化为两个类之间的关联。例如,A 类依赖于 B 类。现在,我们来看第二部分,注入。这意味着,B 类将被 IoC 注入到 A 类中。
依赖注入可以通过将参数传递给构造函数的方式发生,也可以通过使用 setter 方法的构造后发生。由于依赖注入是 Spring Framework 的核心,我们将在单独的章节中通过相关示例来解释这个概念。
面向方面的编程(AOP)
Spring 的关键组件之一是 Aspect Oriented Programming (AOP) 框架。 跨越应用程序多个点的功能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑分开。 有各种常见的良好示例,包括日志记录、声明性事务、安全性、缓存等。
OOP 中模块化的关键单元是类,而 AOP 中模块化的单元是方面。 DI 帮助我们将应用程序对象彼此分离,而 AOP 帮助我们将横切关注点与其影响的对象分离。
Spring Framework 的 AOP 模块提供了面向方面的编程实现,允许定义方法拦截器和切入点,从而可以干净地解耦实现应该分离的功能的代码。 我们将在单独的章节中讨论更多关于 Spring AOP 的概念。
阅读本教程前,您需要了解的知识:
在继续本教程之前,你应该对 Java 编程语言有一个很好的理解。 可以访问我们的 Java 教程