一、Spring概述

什么是框架?框架就是多个可重用模块的集合,形成一个某个领域的整体解决方案。高度抽取可重用代码的一种设计,具有高度的重用性。

Spring框架是一个开源的容器框架。为什么叫容器?因为Spring可以管理所有的组件(类)。

Spring的jar包三个为一组,javadoc中包含相关文档,sources是Spring源码

1. Spring框架概述 - 图1

Spring的优良特性

  1. 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API
  2. 依赖注入:DI,IOC最经典的实现
  3. 面向切面编程:AOP
  4. 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期
  5. 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,在Spring中可以使用XML和Java注解组合这些对象
  6. 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和第三方类库。从前到后,从页面到数据库都有支持

二、Spring的模块划分

Spring框架采用分层架构,根据不同的功能被划分成了多个模块,这些模块可以满足一切企业级应用开发的需求,在开发过程中可以根据需求有选择性地使用所需要的模块。

1. Spring框架概述 - 图2

Test:Spring的单元测试

  1. spring-test-5.2.6.RELEASE.jar

Core Container:
核心容器IOC,这些功能由以下jar包组成,如果要使用这部分功能,需要把这些jar包全部导入

  1. spring-beans-5.2.6.RELEASE.jar
  2. spring-core-5.2.6.RELEASE.jar
  3. spring-context-5.2.6.RELEASE.jar
  4. spring-expression-5.2.6.RELEASE.jar

AOP+Aspects:面向切面编程

  1. spring-aop-5.2.6.RELEASE.jar
  2. spring-aspects-5.2.6.RELEASE.jar

Data Access/integration:数据访问/集成

  1. // Data Access
  2. spring-jdbc-5.2.6.RELEASE.jar
  3. spring-orm-5.2.6.RELEASE.jar // 对象关系映射
  4. spring-tx-5.2.6.RELEASE.jar // 事务
  5. // integration
  6. spring-oxm-5.2.6.RELEASE.jar // 对象XML映射
  7. spring-jms-5.2.6.RELEASE.jar

Web:Spring开发Web应用的模块

  1. spring-websocket-5.2.6.RELEASE.jar // 新技术
  2. spring-web-5.2.6.RELEASE.jar // 原生web相关(servlet)
  3. spring-webmvc-5.2.6.RELEASE.jar // 开发web项目的
  4. spring-webflux-5.2.6.RELEASE.jar // 开发web应用的组件集成

三、Spring的学习

学习Spring主要学习两个内容:IOC(容器)和AOP(面向切面编程),学习IOC之后,可以将Spring与MyBatis、Struts2等进行整合,学习AOP主要是因为后续需要学习声明式事务,而学习事务就需要与数据库打交道,所以不可避免需要学习JdbcTemplate

1. Spring框架概述 - 图3