什么是 Spring ?

Spring 框架是一个开放源代码的 J2EE 应用程序框架,由 Rod Johnson 发起,是针对 bean 的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。【摘自百度百科】

根据百度百科的描述,我们知道 Spring 首先是一个开发框架,然后是一个容器,最后的描述我们可以用一个词语来总结,这个词语叫做:生态,也就是我们学习 Spring 框架理解 Spring 框架, 要从框架、容器、生态三个方面来理解。

框架:

Spring 框架的设计目标是为开发者提供一个一站式轻量级应用开发平台,Spring 可以将简单的组件配置组合成为复杂的应用,在Spring中,应用对象被声明式地组合,典型地是在一个XML文件配置实现,Spring也提供了很多功能支持,让使用者专注业务逻辑实现。

容器:

容器是 Spring 框架的核心,Spring 是一个轻量级容器,用于管理对象及其生命周期,简单来说容器就是存放对象管理对象的池子,通过 Spring 容器,开发者可以更高效、更专注于应用程序开发,并降低了开发难度和维护成本。

生态:

生态本意是指生物在一定的自然环境下生存和发展的状态,Spring 生态其实就是由 Spring 所衍生出的一些列开源项目和技术,因为 Spring 生态提供了丰富的功能和特性,比如我们熟知的 Spring Boot、Spring Cloud、Spring Data、Spring Security 等等,Spring 生态还有很多其他组件和技术,也就是 Spring 的生态非常强大,所以我们要学习 Spring 技术,Spring 是我们开发框架的不二之选。

Spring 核心模块:

Spring 有7个核心模块,分别是容器模块(Spring Core)、应用上下文模块(Spring Context)、AOP模块(Spring AOP)、JDBC抽象和DAO模块(Spring DAO)、对象关系映射模块(Spring ORM)、Web模块(Spring Web)、MVC模块(Spring MVC)。

在这里插入图片描述

  • 容器模块(Spring Core):Spring Core 是 Spring 框架的基础功能,提供了控制反转(IOC)和依赖注入(DI)、Bean配置以及加载,主要组件是 BeanFactory,Spring Core 是任何 Srping 应用的核心。
  • 应用上下文模块(Spring Context):Spring Context 是一个配置文件,为 Spring 框架提供上下文信息,BeanFactory 让 Spring 成为一个容器,而 Spring Context 让 Spring 成为一个框架,Spring Context 扩展了 BeanFactory,提供框架式 Bean 的访问方式,其他程序可以通过 Context 访问 Spring 的 Bean 资源,Spring Context 增加了对国际化(I18N)消息、事件传播、验证的支持,Spring Context 提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务等。
  • AOP模块(Spring AOP):Spring AOP 我们非常熟悉,他提供了面向切面编程的支持,Spring AOP 模块为基于 Spring 开发的应用程序中的对象提供了事务管理服务,通过使用 Spring AOP,不用依赖组件,就可以将声明性事务管理集成到应用程序中,基于 Spring AOP 我们可以自定义权限检查、业务处理、日志记录等操作。
  • JDBC抽象和DAO模块(Spring DAO):Spring DAO 模块主要目的是将持久层相关问题与一般的的业务规则隔离开,提供一致的方式访问数据库,不管采用何种持久化技术,Spring都提供一致的编程模型,简化了 JDBC。
  • 对象关系映射模块(Spring ORM):Spring ORM 集成了主要的 ORM 框架, 其中包括JPA、JDO、Hibernate 和 iBatis,Spring ORM 并不提供 ORM 框架实现,只是对现有的 ORM 框架进行封装,并提供对它们的管理。
  • Web模块(Spring Web):Spring Web 模块建立在应用程序上下文模块之上,为基于 Web 应用程序提供了上下文,提供了 Spring 和其它 Web 框架的集成,比如如 Struts、Webwork 等。
  • MVC模块(Spring MVC):Spring MVC 是 Spring 为构建 Web 应用提供了一个功能全面的轻量级 MVC 框架,虽然Spring可以很容易地与其它 MVC 框架集成,例如 Struts,但 Spring MVC 并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,相比 Struts 也会更轻量。

总结:本篇简单的回忆了 Spring 的一些概念,以及 Spring 的一些核心组件的功能,为后面学习 Spring 埋下一颗种子,Spring 是一个强大的框架,值得我们深入的去研究学习。

欢迎提出建议及对错误的地方指出纠正。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐