Spring框架 - 一、Spring框架概述

185 阅读2分钟

一、Spring概述

什么是框架?框架就是多个可重用模块的集合,形成一个某个领域的整体解决方案。

Spring框架是一个开源的容器框架。为什么叫容器?因为Spring就像一个容器一样,容纳并管理所有的组件(类)。

Spring的优良特性

  1. 非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API

  2. 依赖注入:DI,IOC最经典的实现

  3. 面向切面编程:AOP

  4. 容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期

  5. 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用,在Spring中可以使用XML和Java注解组合这些对象

  6. 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和第三方类库。从前到后,从页面到数据库都有支持

二、Spring的模块划分

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

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

Test: Spring的单元测试

spring-test-5.2.6.RELEASE.jar

Core Container:

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

spring-beans-5.2.6.RELEASE.jar
spring-core-5.2.6.RELEASE.jar
spring-context-5.2.6.RELEASE.jar
spring-expression-5.2.6.RELEASE.jar

AOP+Aspects: 面向切面编程

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

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

// Data Access
spring-jdbc-5.2.6.RELEASE.jar
spring-orm-5.2.6.RELEASE.jar  // 对象关系映射
spring-tx-5.2.6.RELEASE.jar   // 事务
    
// integration    
spring-oxm-5.2.6.RELEASE.jar  // 对象XML映射
spring-jms-5.2.6.RELEASE.jar

Web:Spring开发Web应用的模块

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

三、学习Spring

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