0. 引言
SpringBoot对Spring的改善和优化,它基于约定优于配置
的思想,提供了大量的默认配置和实现
使用SpringBoot之后,程序员只需按照它规定的方式去进行程序代码的开发即可,而无需再去编写一堆复杂的配置
SpringBoot的主要功能如下:
-
起步依赖:SpringBoot以功能化的方式将需要的依赖进行组装,并且允许程序员以start的方式进行引入
-
默认配置:SpringBoot实现了大量依赖框架的默认配置项,程序员无须再进行自己配置
-
内置Tomcat:SpringBoot内置了一个tomcat,使用它开发的程序无需再进行tomcat部署,可直接运行
总之:SpringBoot最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能的减少配置,让程序员去关注业务而非配置。
1. 入门案例
1.1创建工程导入依赖
注意: springboot工程要求必须去继承一个springboot提供的父工程,然后根据业务需要引入指定的starter
<!--父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
</parent>
<dependencies>
<!--web依赖启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
测试
1.2 案例解析
做完了入门案例,我们应该会有下面这样几个疑问:
-
我们的工程在引入`spring-boot-starter-web`依赖的时候,为什么没有指定版本
-
`spring-boot-starter-web`是个啥,为什么引入了它之后,就不需要再引入我们原来做spring开发的那一堆包了
-
我们的程序没有部署到tomcat,为什么就可以被访问
-
为什么我们访问程序的时候要用8080端口,谁定义的
-
我们的项目继承了
spring-boot-starter-parent
父工程,它内部已经锁定了一些常见依赖的版本号,故而在我们自己开发的工程中无需再指定依赖的版本。 -
起步依赖
SpringBoot根据场景将各种依赖组装成了一个个的集合(starter),我们根据功能引入指定的starter即可。
3.内置tomcat
- 默认配置
SpringBoot的约定大于配置,即SpringBoot的大量配置都有默认值,如果我们不去写配置就使用默认的。
比如说: tomcat默认端口 8080等等
2. 配置文件
SpringBoot是基于约定的,很多配置都有默认值,但也允许自定义配置,具体做法是在resources下创建文件:
application.yaml 或者 application.yml 或者 application.properties
注意:目前版本中, SpringBoot启动时会依次加载:yaml、yml、properties文件,优先级依次升高
2.1 读取配置
* 方式1: @Value (了解)
此注解是Spring框架提供的,用来读取配置文件中的属性值并逐个注入到Bean对象的对应属性中
* 方式2: @ConfigurationProperties(掌握)
此注解是SpringBoot框架提供的,用来快速将配置文件中的属性值批量注入到某个Bean对象的多个对应属性中
注意:不要使用 user.name 这个键被操作系统占用了
方式2
java
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
3.常用功能
3.1日志输出
包名: 日志级别(常用的级别有4个: debug info warn error)
logging:
level:
org.springframework: info
com.itheima: info
3.2单元测试
- 引入依赖
java
<!--引入junit依赖启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
- 编写测试类