Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot
Spring 框架是 Java 平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管 Spring 框架自身对编程模型没有限制,但其在 Java 应用中的频繁使用让它备受青睐,以至于后来让它作为 EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring 框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的 Web 框架方便开发等等。Spring 框架具有控制反转(IOC)特性,IOC 旨在方便项目维护和测试,它提供了一种通过 Java 的反射机制对 Java 对象进行统一的配置和管理的方法。
Spring 框架利用容器管理对象的生命周期,容器可以通过扫描 XML 文件或类上特定 Java 注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring 框架具有面向切面编程(AOP)框架,SpringAOP 框架基于代理模式,同时运行时可配置;AOP 框架主要针对模块之间的交叉关注点进行模块化。Spring 框架的 AOP 框架仅提供基本的 AOP 特性,虽无法与 AspectJ 框架相比,但通过与 AspectJ 的集成,也可以满足基本需求。Spring 框架下的事务管理、远程访问等功能均可以通过使用 SpringAOP 技术实现。Spring 的事务管理框架为 Java 平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在 Java 平台的任何环境中工作。
Spring 集成多种事务模板,系统可以通过事务模板、XML 或 Java 注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring 的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对 Java:JDBC、iBATS/MyBATIs、Hibernate、Java 数据对象(JDO)、ApacheOJB 和 ApacheCayne 等所有流行的数据访问框架中提供支持,同时还可以与 Spring 的事务管理一起使用,为数据访问提供了灵活的抽象。Spring 框架最初是没有打算构建一个自己的 WebMVC 框架,其开发人员在开发过程中认为现有的 StrutsWeb 框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了 SpringMVC。
SpringBoot 框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在 MAVEN 项目的 pom 文件中添加相关依赖包,然后使用对应注解来代替繁琐的 XML 配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Convention over configuration,是一种由 SpringBoot 本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了 BUG 定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的 XML 配置,并且可以将代码编译、测试和打包等工作自动化。
SpringBoot 应用系统开发模板的基本架构设计从前端到后台进行说明:前端常使用模板引擎,主要有 FreeMarker 和 Thymeleaf,它们都是用 Java 语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到 Bootstrap、AngularJS、JQuery 等;在浏览器的数据传输格式上采用 Json,非 xml,同时提供 RESTfulAPI;SpringMVC 框架用于数据到达服务器后处理请求;到数据访问层主要有 Hibernate、MyBatis、JPA 等持久层框架;数据库常用 MySQL;开发工具推荐 IntelliJIDEA。