SpringBoot入门介绍
一、什么是SpringBoot
Spring Boot的设计目的是用来简化新Spring应用的初始搭建以及开发过程。
SpringBoot并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。即它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
目的:Spring Boot来简化Spring应用开发,约定优于配置, 去繁从简,just run就能创建一个独立的,产品级别的应用。
优点:
- 快速创建独立运行的Spring项目以及与主流框架集成 —— 快速创建与集成
- 使用嵌入式的Servlet容器,应用无需打成WAR包 —— 内嵌Servlet容器,无需打成WAR包
- starters自动依赖与版本控制 —— 自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值 —— 大量自动配置
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
二、SpringBoot诞生的历史背景
随着使用 Spring 进行开发的个人和企业越来越多,Spring 也慢慢从一个单一简洁的小框架变成一个大而全的开源软件,Spring 的边界不断的进行扩充,到了后来 Spring 几乎可以做任何事情了,市面上主流的开源软件、中间件都有 Spring 对应组件支持,人们在享用 Spring 的这种便利之后,也遇到了一些问题。Spring 每集成一个开源软件,就需要增加一些基础配置,慢慢的随着人们开发的项目越来越庞大,往往需要集成很多开源软件,因此后期使用 Spirng 开发大型项目需要引入很多配置文件,太多的配置非常难以理解,并容易配置出错,到了后来人们甚至称 Spring 为配置地狱。
Spring 似乎也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,快速开发微小独立的应用变得更为急迫,Spring 刚好处在这么一个交叉点上,于 2013 年初开始的 Spring Boot 项目的研发,2014年4月,Spring Boot 1.0.0 发布。
Spring Boot 诞生之初,就受到开源社区的持续关注,陆续有一些个人和企业尝试着使用了 Spring Boot,并迅速喜欢上了这款开源软件。直到2016年,在国内 Spring Boot 才被正真使用了起来,期间很多研究 Spring Boot 的开发者在网上写了大量关于 Spring Boot 的文章,同时有一些公司在企业内部进行了小规模的使用,并将使用经验分享了出来。从2016年到2018年,使用 Spring Boot 的企业和个人开发者越来越多。2018年SpringBoot2.0的发布,更是将SpringBoot的热度推向了一个前所未有的高度。
三、Springboot 版本+ jdk 版本 + Maven 版本的兼容关系
SpringBoot2.0以下,使用JDK1.7
SpringBoot2.0及以上,使用JDK1.8及以上
备注:
- Spring Boot –> J2EE一站式解决方案
- Spring Cloud –> 分布式整体解决方案
四、SpringBoot提供的功能
- spring-boot:核心库,提供基础功能。(⭐️ ⭐️ ⭐️ ⭐️ ⭐️)
- spring-boot-autoconfigure 和 spring-boot-starters:使用autoconfigure提供自动配置功能;使用Starter达到快速集成的目的。(⭐️ ⭐️ ⭐️ ⭐️ ⭐️)
- spring-boot-actuator 和 spring-boot-actuator-autoconfigure:生产级的非功能性特性,一些监控、健康检查等功能。(⭐️ ⭐️ ⭐️ ⭐️ ⭐️)
- spring-boot-test 和 spring-boot-test-autoconfigure:基于SpringBot的测试支持。(⭐️ ⭐️ ⭐️ ⭐️)
- spring-boot-parent 和 spring-boot-dependencies:是所有其他module的父节点,使依赖版本在同一位置管理。(⭐️ ⭐️ ⭐️ ⭐️)
- spring-boot-devtools:开发者工具集,包含自动重启、浏览器自动刷新、远程调试等功能。(⭐️ ⭐️ ⭐️)
- spring-boot-tools:maven/gradle插件、可执行jar等功能。(⭐️ ⭐️ ⭐️)
- spring-boot-cli:提供一套命令行工具。(⭐️ ⭐️)
- spring-boot-properties-migrator:帮助开发者从低版本升级到Spring Boot 2.0。(⭐️)
- spring-boot-docs:指定java doc的内容及样式。(⭐️)
五、Spring Boot与Spring其它project的对比
Spring Boot vs Spring Cloud
Spring Cloud是一个基于Spring Boot实现的一系列框架的有序集合,是一个关注全局的服务治理框架。
Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
SpringCloud的官网截图如下:
Spring Boot vs Spring Framework
Spring Framework是一个轻量级、非侵入式、一站式、模块化的开发应用框架。Spring Boot基于Spring Framework开发,不能单独存在。
Spring Boot vs Spring MVC
Spring MVC是Spring Framework中处理web请求的一个模块,是Spring Framework的一部分。层级是这样的:
Spring MVC >> Spring Framework >> Spring Boot
官网:https://spring.io/projects/spring-boot
文档说明:https://docs.spring.io/spring-boot/docs/current/reference/html/
本系列文章以 2.3.6.RELEASE 为基础版本进行说明