📅  最后修改于: 2020-11-11 06:56:23             🧑  作者: Mango
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 Framework的一些主要好处的列表-
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)。
Spring最受瞩目的技术是控制反转的依赖注入(DI)风格。控制反转(IoC)是一个通用概念,可以用许多不同的方式表示。依赖注入只是控制反转的一个具体示例。
在编写复杂的Java应用程序时,应用程序类应尽可能独立于其他Java类,以增加重用这些类并在单元测试时独立于其他类进行测试的可能性。依赖注入有助于将这些类粘合在一起,同时使它们保持独立。
到底什么是依赖注入?让我们分别看这两个词。在这里,依赖关系部分转换为两个类之间的关联。例如,类A依赖于类B。现在,让我们看第二部分,注入。所有这些意味着,B类将被IoC注入A类。
依赖注入可以通过将参数传递给构造函数的方式进行,也可以通过使用setter方法的后构造的方式进行。由于依赖注入是Spring框架的核心,因此我们将在单独的章节中使用相关示例来解释此概念。
Spring的关键组件之一是面向方面的编程(AOP)框架。跨应用程序多个点的功能称为跨领域关注点,这些跨领域关注点在概念上与应用程序的业务逻辑是分开的。有很多方面的通用示例,包括日志记录,声明性事务,安全性,缓存等。
OOP中模块化的关键单元是类,而在AOP中模块化是方面。 DI帮助您将应用程序对象彼此分离,而AOP帮助您将横切关注点与其影响的对象分离。
Spring Framework的AOP模块提供了一个面向方面的编程实现,使您可以定义方法拦截器和切入点,以干净地解耦实现应分离功能的代码。我们将在单独的章节中讨论有关Spring AOP概念的更多信息。