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编写的应用程序易于测试,因为依赖环境的代码已移入此框架。此外,通过使用JavaBean风格的POJO,使用依赖注入来注入测试数据变得更容易。

  • Spring的Web框架是一个设计良好的Web MVC框架,它为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框架的核心,我们将在单独的章节中结合相关示例解释此概念。

面向方面编程(AOP)

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

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

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

广告