Spring Boot简介简介入门
一、Spring Boot是什么?解决了什么?
Spring Boot是Sping家族的一个全新框架,用来简化Spring应用程序的创建和开发,也可以简化我们之前采用的SSM(SpringMVC+Spring+MyBatis)框架的开发过程、简化整合工作。
Spring Boot就行革命性颠覆,抛弃了繁琐的xml配置过程,采用大量的默认配置来简化开发,使之4个简单化:
- 编码简单了
- 配置简单了
- 部署简单了
- 监控简单了
二、Spring Boot的特性
- 能偶快速创建基于Spriing的应用程序
- 能够直接使用java main方法启动内嵌的Tomcat服务器运行Spring Boot程序,不需要war包文件
- 提供约定的starter POM来简化Maven配置
- 提供自动化配置,根据项目的Maven依赖配置,Spring Boot自动配置Spring、Spring mvc…
- 提供程序的健康监测(基本不用)
- 基本完全不使用XML配置,采用注解配置
- 对主流框架无配置集成
- 与云计算天然集成
三、Spring Boot四大核心
3.1 自动配置(掌握)
针对很多Spring应用程序和常见的应用功能,Spring Boot能自动提供相关配置
原理:浅析springboot自动配置原理 郭大头_Gopoop
摘:
举个可能不是很恰当的例子,SpringBoot的自动配置原理,跟餐厅的机制很类似。以我最近很喜欢的探鱼来说,如果将SpringBoot比喻成探鱼,把吃饭比做我们的应用,我们来到探鱼吃饭的时候(相当于在应用中加入了@SpringBootApplication),服务员会引导我们开始在菜单点餐纸上点餐(菜单点餐纸是预先定义好的,就相当于spring.factories文件,预先定义了我们可以使用的自动配置信息),探鱼既可以自行搭配烤鱼口味,也可以直接点店家为我们搭配好的口味(springboot也是如此,比如消息中间件,就有好多种口味可以选,比如rabbitmq,kafka,根据业务场景而定),我们在喜欢的菜上进行勾选(相当于在pom文件中引入所需框架的starter),然后确定下单(启动springboot应用)。我很喜欢吃花菜,可惜探鱼没有这道辅菜,但是我们可以自己准备然后带过去啊,烤鱼上了就加进去煮,真是骚操作(这就是加入自定义的自动配置了,这一步比较麻烦,需要自行封装starter)
3.2 起步依赖(掌握)
告诉Spring Boot需要什么功能,它就能引入需要的依赖库。在起步依赖上,spring boot帮我们管理了各个依赖的版本,使各个依赖不会出现版本冲突;另外,帮我们打包了各个依赖让我们不用再像之前那样自己导入一大堆的依赖,只要引入起步依赖的坐标就可以进行web开发了,同样体现了依赖传递的作用。
1.起步依赖其实就是特殊的Maven依赖或Gradle依赖
2.把常用库聚合在一起,组成几个特定功能而定制的依赖
3.起步依赖把你从“需要哪些库的哪些版本”中解脱出来,且不用担心库之间的兼容性
4.起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM)
5.不需要指定版本号,起步依赖本身的版本是由正在使用的Spring Boot的版本来决定的,而起步依赖则会决定它们引入的传递依 赖的版本。
6.显示依赖树:mvn dependency:tree
7.起步依赖和你项目里的其他依赖没什么区别。也就是说,你可以通过构建工具中的功能,选择性地覆盖它们引入的传递依赖的版 本号,排除传递依赖,当然还可以为那些Spring Boot起步依赖新增没有涵盖的库指定依赖。
spring-boot-starter-*依赖介绍
spring-boot-starter-起步依赖是SpringBoot核心之处,它提供了Spring和相关技术提供一站式服务,让开发者不在关心Spring相关配置,简化了传统的依赖注入操作,当然开发者也可通过application.properties文件自定义配置。
SpringBoot常规启动都遵循类似的命名模式spring-boot-starter-,其中星号是一种指定类型的应用程序,如spring-boot-starter-web表示应用程序依赖SpringWeb相关内容。另外,SpringBoot支持第三方插件引用,第三方启动程序通常以项目的名称开始。例如,mybatis依赖插件引用为mybatis-spring-C-starter。
3.3 Actuator -健康监测-不怎么用
让你能深入运行中的Spring Boot应用程序,一探Spring Boot程序的内部信息
- Spring应用程序上下文里配置的Bean
- Spring Boot的自动配置做的决策
- 应用程序取到的环境变量、系统属性、配置属性和命令行参数
- 应用程序里线程的当前状态
- 应用程序最近处理过的HTTP请求的追踪情况
- 各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标
3.4 命令行界面-基本不用
可选特性,主要针对Groovy语言使用
参考文章/文献/视频
是谁扭曲了时空
浅析springboot自动配置原理 郭大头_Gopoop
SpringBoot特性
Spring Boot 梳理 - 4个核心
最强SpringBoot实战教程内容通俗易懂springboot微服务开发实战SpringBoot2.x全套完整版 女毒v