Spring 是最风行的企业 Java 利用程序开发框架。寰球数以百万计的开发人员应用 Spring Framework 来创立高性能、易于测试和可重用的代码。
Spring 框架是一个开源的 Java 平台。它最后由 Rod Johnson 编写,并于 2003 年 6 月在 Apache 2.0 许可下首次公布。
在尺寸和透明度方面,Spring 是轻量级的。Spring 框架的根本版本大概为 2MB。
Spring Framework 的外围性能可用于开发任何 Java 应用程序,但有一些扩大可用于在 Java EE 平台之上构建 Web 应用程序。Spring 框架旨在通过启用基于 POJO 的编程模型使 J2EE 开发更易于应用并促成良好的编程实际。
应用 Spring 框架的益处
以下是应用 Spring Framework 的几个微小益处的列表 –
Spring 使开发人员可能应用 POJO 开发企业级应用程序。仅应用 POJO 的益处是您不须要 EJB 容器产品(如应用程序服务器),但您能够抉择仅应用强壮的 servlet 容器(如 Tomcat 或某些商业产品)。
Spring 以模块化形式组织。只管包和类的数量很多,但您只须要放心您须要的包和类,而疏忽其余的。
Spring 并没有从新创造轮子,而是真正利用了一些现有技术,如几个 ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器以及其余视图技术。
测试用 Spring 编写的应用程序很简略,因为依赖于环境的代码被移到了这个框架中。此外,通过应用 JavaBeanstyle POJO,应用依赖注入来注入测试数据变得更加容易。
Spring 的 web 框架是一个精心设计的 web MVC 框架,它提供了一个很好的代替 web 框架,如 Struts 或其余适度设计或不太风行的 web 框架。
Spring 提供了一个不便的 API 来将特定于技术的异样(例如由 JDBC、Hibernate 或 JDO 抛出)转换为统一的、未经查看的异样。
轻量级 IoC 容器往往是轻量级的,尤其是与 EJB 容器相比时。这有利于在内存和 CPU 资源无限的计算机上开发和部署应用程序。
Spring 提供了一个统一的事务管理接口,能够放大到本地事务(例如应用单个数据库)和扩大到全局事务(例如应用 JTA)。
依赖注入 (DI)
Spring 最认同的技术是管制反转的依赖注入 (DI)格调。该管制反转(IOC)是一个抽象的概念,它能够在许多不同的形式来表白。依赖注入只是管制反转的一个具体例子。
在编写简单的 Java 应用程序时,应用程序类应尽可能独立于其余 Java 类,以减少重用这些类的可能性,并在单元测试时独立于其余类进行测试。依赖注入有助于将这些类粘合在一起,同时放弃它们的独立性。
到底什么是依赖注入?咱们别离看一下这两个词。这里的依赖局部转化为两个类之间的关联。例如,A 类依赖于 B 类。当初,让咱们看看第二局部,注入。所有这些意味着,B 类将被 IoC 注入到 A 类中。
依赖注入能够通过将参数传递给构造函数的形式产生,也能够通过应用 setter 办法的后结构产生。因为依赖注入是 Spring Framework 的外围,咱们将在独自的章节中用相干示例解释这个概念。
面向方面编程 (AOP)
Spring 的要害组件之一是面向方面的编程 (AOP)框架。逾越应用程序多个点的性能称为横切关注点,这些横切关注点在概念上与应用程序的业务逻辑拆散。方面有各种常见的好例子,包含日志记录、申明性事务、安全性、缓存等。
OOP 中模块化的要害单位是类,而 AOP 中模块化的单位是方面。DI 帮忙您将应用程序对象彼此拆散,而 AOP 帮忙您将横切关注点与它们影响的对象拆散。
Spring Framework 的 AOP 模块提供了一个面向方面的编程实现,容许您定义方法拦截器和切入点,以洁净地解耦实现应该拆散的性能的代码。咱们将在独自的章节中探讨更多对于 Spring AOP 概念的内容。