购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 Spring介绍

1.1.1 Spring设计目标

Spring是一个于2003年兴起的轻量级的Java开源开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。Spring让开发人员有更多的精力投入到业务逻辑开发中,而不需要将其应用程序绑定到特定的部署环境,是为了降低企业应用开发的复杂性而创建的。Spring不是创造轮子(技术、框架),而是使现有的轮子运转得更好的工具。可以把Spring理解成一个大容器,这个容器可以整合现有的各种技术框架。Spring框架的主要优势是方便各种框架集成,降低了Java EE开发的难度。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Spring的用途不限于服务器端应用程序的开发。

Spring框架提供了很多子模块供开发人员使用。

1.1.2 Spring各个子模块

Spring是一个大容器,可以集成各种技术。如图1-1所示是Spring支持的各种技术。

图1-1 Spring支持的技术体系

下面依次介绍Spring支持的各种技术。

(1)Core Container

Spring的核心容器由Beans、Core、Context、SpEL等模块组成。所有Spring的其他模块都是建立在Core Container基础模块上的。该模块规定了创建和维护Bean的方式,提供了控制反转(IoC)和依赖注入(DI)等特性。

(2)Data Access/Integration

数据访问/集成模块提供了对JDBC、ORM、OXM、JMS和Transaction等模块的集成。使主流的ORM框架,持久化框架和消息中间件可以很方便地集成到Spring中,降低开发人员对这些框架的维护成本,提升了开发效率。

(3)Web模块

Web模块提供了对Web开发相关技术的集成,对开发模型-视图-控制器(MVC)项目提供便利。

(4)AOP模块

AOP模块提供了AOP联盟提倡的面向切面编程的实现环境。AOP将代码按功能进行分离,降低了模块间代码的耦合度。

(5)Test模块

Test模块支持JUnit和TestNG等单元测试模块的集成,还提供了mock对象,使开发人员可以更加独立的测试代码。

1.1.3 Spring使用场景

(1)管理依赖的资源

在企业开发中,经常需要管理各种配置文件,如JDBC连接配置文件,ORM配置文件等。可以通过Spring管理这些文件。如加载JDBC的配置文件jdbc.properties就可以使用如下代码方式配置Spring,这样Spring启动时会在此路径下自动搜索名称为jdbc.properties的配置文件,并将其加载到内存中:

     <context:property-placeholder location="classpath*:jdbc.properties"/>

(2)Bean管理

一个企业项目中,会有很多Bean,每次都手动创建和管理这些Bean的对象是很低效的。Spring提供了管理Bean的IoC容器,并在需要用到相关Bean的时候,提供依赖注入(DI)将相关的Bean注入。

(3)事务管理

Spring提供的事务管理,使开发人员在做数据库操作时,无须再手动执行对数据库的提交或回滚操作,并且Spring还提供了对事务传播的支持,可以实现更加复杂的事务嵌套的逻辑,对数据一致性提供了更好的支持。

Spring的使用场景远不止这里提到的三点,更多Spring使用场景,请见Spring系统集成篇。

1.1.4 Spring与Spring MVC的关系

Spring和Spring MVC两者名字类似,但是两者却有着本质的不同。Spring是一个巨大的容器,可以集成各种技术。Spring MVC是一个Web技术,Spring MVC可以集成到Spring中。用数学上集合的概念来解释,Spring MVC是Spring的一个子集。

1.1.5 Spring 5高级特性

截止本书出版,Spring最新版本已经升级到了5.1版本。Spring 5相比于Spring之前的历史版本,带来了以下新的特性:

· Spring 5整个框架基于Java 8

· 支持HTTP/2

· Spring Web MVC支持最新API

· Spring WebFlux响应式编程

· 支持Kotlin函数式编程

更多有关Spring 5的高级特性请见Spring 5高级特性篇。 fJI+MGyKsbBBFtopAjRUfCoasrIKvLydxFSKj6xJr7Z0chppT/hlHD2mEjAXDkJm

点击中间区域
呼出菜单
上一章
目录
下一章
×