Spring Boot 介绍
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计⽬目的是⽤用来简化新 Spring 应用的初始搭建以及开发过
程,该框架使⽤用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Spring Boot 默认配
置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包, Spring Boot 整合了所有的框架。 Spring Boot
的核心设计思想是: 约定优于配置, Spring Boot 所有开发细节都是依据此思想进行实现。
Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有并且更容易使
用; Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring
应用。
该项目主要的目的是:
让 Spring 的开发更快、更广泛的上手;
使用默认方式实现快速开发;
提供大多数项目所需的非功能特性,诸如:嵌入式服务器、安全、心跳检查、外部配置等。
Spring Boot 特性
使用 Spring 项目引导页面可以在几秒构建一个项目;
(1)、方便对外输出各种形式的服务,如 REST API、 WebSocket、 Web、 Streaming、 Tasks;
(2)、非常简洁的安全策略集成;
(3)、支持关系数据库和非关系数据库;
(4)、支持运行期内嵌容器,如 Tomcat、 Jetty;
(5)、强大的开发包,支持热启动;
(6)、自动管理依赖;
(7)、自带应用监控;
(8)、支持各种 IED,如 IntelliJ IDEA 、 NetBeans。
Spring Boot 市场热度
Spring Boot 于 年发布了了第一个正式版本,发布之后陆续有一些开源爱好者进行了研究,并迅速喜欢上
了这款开源软件, Spring Boot 在初期低调快速的发展着。直到 年 Spring Boot 才被真正使用了起来,
期间很多研究 Spring Boot 的开发者,在网上写了大量关于 Spring Boot 的文章,推动了 Spring Boot 在行业
内的发展。
从 年到 年,是 Spring Boot 在中国发展的黄金时期,使用 Spring Boot 的企业和个人开发者越来
越多,我们从 Spring Boot 关键字的百度指数可以看出。
通过谷歌趋势来看 Spring Boot 在美国的使用情况发现,中国和美国人民使用 Spring Boot 的整体频率保持一
致,看来国内技术人同步全球的技术频率越来越快。
看到社区使用 Spring Boot 的热情, Spring 官方也非常重视 Spring Boot 的后续发展,已经将 Spring Boot 作
为公司最顶级的项目来推广,放到了官⽹网上第一的位置,后续 Spring Boot 的发展也被看好。
Spring Boot 和微服务架构
微服务架构是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下
诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大。在这种情况下,如何从系统
架构的角度出发,构建灵活、易扩展的系统,快速应对需求的变化;同时,随着用户的增加,如何保证系统
的可伸缩性、高可用性,成为系统架构面临的挑战。
如果还按照以前传统开发模式,开发一个大型而全的系统已经很难满⾜市场对技术的需求,这时候分而治之
的思想被提了了出来,于是我们从单独架构发展到分布式架构,又从分布式架构发展到 SOA 架构,服务不断地
被拆分和分解,粒度也越来越小,直到微服务架构的诞生。
大约 年开始, Netflix 完全重新定义了它的应用程序开发和操作模型,拉开了微服务探索的第一步,直
到 年 3 月 Martin Fowler 写的一篇文章 MicroServices 以更加通俗易懂的形式为大家定义了什么是微服
务架构。 Martin Fowler 在文中阐述了对微服务架构的设想,认为微服务架构是一种架构模式,它提倡将单一
应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
Spring Boot 诞生时,正处于微服务概念在慢酝酿中, Spring Boot 的研发融合了微服务架构的理念,实现
了在 Java 领域内微服务架构落地的技术支撑。 Spring Boot 在开发、测试、部署、运维等⽅方⾯面都做了大量的
优化,使⽤用 Spring Boot 开发项目,可以快速响应需求、独立完成开发部署上线。
Spring Boot 的一系列特性容易实现微服务架构的落地,从目前众多的技术栈对比来看 Spring Boot 是 Java
领域微服务架构最优落地技术没有之⼀。
为什什么学习 Spring Boot
Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于
Spring 框架的应用程序。同时它集成了大量常用的第三方库配置(如 Redis、 MongoDB、 JPA、
RabbitMQ、 Quartz 等), Spring Boot 应用中的这些第三方库几乎可以零配置的开箱即用,大部分的 Spring
Boot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
使⽤用 Spring Boot 开发项目,有以下几方面优势:
(1)、Spring Boot 使开发变简单, Spring Boot 提供了丰富的解决方案,快速集成各种解决方案提升开发效
率。
(2)、Spring Boot 使配置变简单, Spring Boot 提供了丰富的 Starters,集成主流开源产品往只需要简单的
配置即可。
(3)、Spring Boot 使部署变简单, Spring Boot 本身内嵌启动容器,仅需要一个命令即可启动项目,结合
Jenkins 、 Docker 自动化运维非常容易实现。
(4)、Spring Boot 使监控变简单, Spring Boot 自带监控组件,使用 Actuator 轻松监控服务各项状态。
从软件发展的角度来讲,越简单的开发模式越会流行,简单的开发模式解放出更多⽣产力,让开发人员可以
将精力集中在业务上,而不是各种配置、语法所设置的门槛上。 Spring Boot 就是尽可能的简化应用开发的⻔门
槛。
Spring Boot 所集成的技术栈,几乎都是各互联网公司在使用的技术,跟着 Spring Boot 的路线去学习,基本
可以了解国内外互联网公司的技术特点
总结
Spring Boot 是一套快速开发框架,在微服务架构的大环境下 Spring Boot 一经推出就受到开源社区的关注。
Spring Boot 有强大的生态整合能力,提供了众多的 Starters 包,非常方便 Spring Boot 集成第三方开源软件
达到开箱即用的效果。 Spring Boot 和微服务架构都是未来软件开发的一个大趋势,越早参与其中受益越大。