提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
SpringBoot概念
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014年4月,SpringBoot1.0.0发布。Spring的顶级项目之一(Spring官网)。
Spring缺点
1) 配置繁琐
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring 用XML配置,而且是很多XML配置。Spring 2.5引1入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0 1入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所
以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少。
2)依赖繁琐
项目的依赖管理也是一 件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而目还需要分析导
入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容门题就会严重阳碍项目的开发
进度
SpringBoot 功能
1) 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。
2)起步依赖
起步依赖本质上是一个Maven项目对象模型 (ProjectObject Model, POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
3) 辅助功能
提供了一些大型项目中常见的日功能性特性,如嵌入式服各器、安全,指标,健康检测、外部配置等
Spring Boot 并不是对Spring 功能上的增强,而是提供了一种快速使用 Spring的方式。
SpringBoot快速入门
需求:
搭建SpringBoot工程,定义HelloController.hello()方法,返回“Hello SpringBoot!”。
实现步骤
1.创建maven项目
2.导入SpringBoot起步依赖
pom文件依赖导入官网
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.定义COntroller
4.编写引导类
5.启动测试
小结:
- SpringBoot在创建项目时,使用jar的打包方式
- SpringBoot的引导类,是项目入口,运行main方法就可以启动项目。
- 使用SpringBoot和Spring构建的项目,业务代码编写方式完全一样
SpringBoot起步依赖原理分析
1)spring-boot-starter-parent
2)spring-boot-starter-web
小结
- 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本
- 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
- 我们的工程继承parent,引入starter后,通过传递依赖,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题
SpringBoot配置
配置文件分类
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
properties:
server.port=8080
yml:
server:
port:8080
小结:
- SpringBoot提供了2种配置文件类型:properties和yml/yaml
- 默认配置名称:application
- 在同一级目录下优先级为:properties>yml>yaml
YAML
YAML全称是YAML Ain’t Markup Language .YAML是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如C/C++,Ruby,Python,Java,Perl,C#,PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YAML文件的扩展名可以使用.yml或者.yaml。