Spring Boot的配置文件和自动配置原理
1.使用Spring Initializer快速创建Spring Boot项目
1、IDEA:使用 Spring Initializer快速创建项目
IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目;
选择我们需要的模块;向导会联网创建Spring Boot项目;
默认生成的Spring Boot项目;
主程序已经生成好了,我们只需要我们自己的逻辑
resources文件夹中目录结构
static:保存所有的静态资源; js css images;
templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页
面);可以使用模板引擎(freemarker、thymeleaf)
application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;
2.自定义SpringApplication
如果SpringApplication默认设置不符合您的喜好,则可以创建一个本地实例并对其进行自定义。例如,要关闭横幅,您可以编写:
3.配置文件的使用
springboot中配置文件的三种格式:
两种配置文件的格式
1、application.properties的用法:扁平的k/v格式。
2、application.yml的用法:树型结构。
yml基本语法:
k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的;
属性和值也是大小写敏感;
如果有特殊字符% & 记得用单引号(‘)包起来;
配置文件的加载顺序
优先级加载顺序:yml>yaml>properties
3.外部约定配置文件加载顺序:
从低到高:
- classpath根目录下的
- classpath根config/
- 项目根目录
- 项目根目录/config
- 直接子目录/config
总结:优先级从低到高为
4、配置文件值注入
实体类user和Address实体类
Address实体类
使用yml的方式
当然也可以使用properties的方式:
注意:使用properties的方式需要在对应的实体类上加上@PropertySource这个注解
在实体类中建议使用@ConfigurationProperties注解来实现批量注入的功能。
如果使用@Value的话一次只能注入一个,会比较麻烦。
@Validated注解是用来实现数据校验的
当然使用数据校验之前要先在pom.xml文件中加上
@Value获取值和@ConfigurationProperties获取值比较
5. Spring Boot的自动配置原理
自动配置流程图
https://www.processon.com/view/link/5fc0abf67d9c082f447ce49b
这个自动配置流程图较为重要,最好能自己画出来。