对于Spring,相信大家都非常熟悉,从出现开始,一直是企业级开发的主流。但是随着软件的发展和应用开发的不断演化,它的一些缺点也逐渐暴露出来。下面看一下Spring的发展历程并且认识一下Spring Boot。
由来
在Spring1.x的时候,所有的配置都通过XML实现,随着项目的扩大,需要频繁地在Java和XML之间切换。
在Spring2.X的时候,已经开始逐步替换掉XML配置。在Spring3.x的时候,已经开始提供Java的配置方式,在Spring4.x的时候,已经全部推荐使用Java配置的方式。随着动态语言的流行,Java的开发显得格外烦琐,主要体现在配置的复杂、开发效率低下,以及与第三方集成的繁杂等方面,这个时候Spring Boot应运而生。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建和开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,减少与第三方库集成的复杂度。
Spring Boot的核心思想就是约定大于配置,多数Spring Boot应用只需要很少的Spring配置。采用Spring Boot可以大大简化开发模式,所有想集成的常用框架,它都有对应的组件支持。
特性
(1) 方便地创建独立的Spring应用,为基于Spring的开发提供更快的入门体验。
(2) 内置Tomcat,无须生成WAR文件。
(3) 简化Maven配置。
(4) 自动配置Spring,更快、更方便地与第三方应用整合,比如消息队列、缓存等企业级开发中常用的组件。
(5) 提供大型项目中的非功能特性,如指标、安全、健康检查及外部配置。
(6) 开箱即用,无须代码生成,也无须XML配置,同时能够通过修改默认值来满足待定的需求。
四大神器
自动配置
Spring Boot的自动配置功能可基于类路径检测自动为运行中的应用配置依赖关系,不需要提供额外的XML配置。
Starters
Spring Boot可提供一系列成为POM Starters的精细依赖关系。Spring Boot熟知如何配置这些依赖关系,同时让组织能够扩展Spring Boot来配置自定义的依赖关系。
Actuator
Actuator可提供运行状况检查和指标等生产就绪型功能。这些功能通过Spring Boot应用内的REST终端提供,只需要简单的配置就可以实现强大的监控和检查。
开发工具
这些工具旨在缩短开发和测试周期,其中包括一个可在资源变更时触发浏览器刷新的嵌入式LiveReload服务器。这些工具还提供了应用自动重启功能,只要类路径上的文件发生更改,该功能即可启动。重启技术使用两种类加载器,未更改的分类(例如,来自第三方JAR的类)被加载到基础类加载器,而开发中的分类则被加载到重启类加载器。当应用重启时,重启类加载器会被丢弃,同时创建一个新的类加载器。这种方法意味着应用重启的速度通常比“冷启动”的速度快得多,因为基础类加载器已准备就绪且已填充完毕,从而快速实现应用的热部署,对于简单的修改这种场景能够非常有效的提高效率。