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 为基础版本进行说明

 

posted @ 2020-02-18 15:05  codedot  阅读(248)  评论(0编辑  收藏  举报