- Spring 核心基础知识
- 春天 - 主页
- 春天 - 概述
- 春天-建筑
- Spring - 环境设置
- Spring - Hello World 示例
- Spring - IoC 容器
- Spring - Bean 定义
- Spring - Bean 范围
- Spring - Bean 生命周期
- Spring - Bean 后处理器
- Spring-Bean定义继承
- Spring - 依赖注入
- Spring - 注入内部 Bean
- Spring - 注入集合
- Spring - Bean 自动装配
- 基于注释的配置
- Spring - 基于Java的配置
- Spring - Spring 中的事件处理
- Spring - Spring 中的自定义事件
- Spring - 使用 Spring 框架的 AOP
- Spring - JDBC 框架
- Spring-事务管理
- Spring - Web MVC 框架
- Spring - 使用 Log4J 进行日志记录
- 春季问答
- 春天 - 问题与解答
- 春季有用资源
- 春天 - 快速指南
- Spring - 有用的资源
- 春天 - 讨论
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 概念的内容。