一.SpringBoot配置文件
有三种种配置文件:application.yaml,application.yml,application.properties,但是我们一般使用yml结尾的配置文件其它一般不用。
1.properties 配置⽂件说明
①基本语法和配置文件的读取
// 配置文件的部分
// properties 是以键值的形式配置的,key 和 value 之间是以"="连接的,如:
mykey.key1 = bite
--------------------------------------------------------------------
// 代码从配置文件中读取
// @Value 注解使⽤" ${} "的格式读取,案例如下:
@RestController
public class PropertiesController {@Value("${mykey.key1}")private String key1;@RequestMapping("/key")public String key(){return "读取到值:"+key1;}
}
②缺点
写的太长了,不方便书写。
2.yml 配置⽂件说明
①基本语法
# 这个代码案例是连接数据库的配置
# 然后注意‘:’后面有一个空格不能省略
# 每一层的前面有两个空格
spring:datasource:url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=falseusername: rootpassword: root
②使用
①yml 配置不同数据类型及 null
# 字符串 这里的字符串建议不要加上单引号或者双引号 value1: Hello # 布尔值,true或false value2: true value3: false # 整数 value4: 10 # 浮点数 value5: 3.14159# Null,~代表null value6: ~# "" 空字符串 #, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来 value7: ''
②yml 配置读取(读取配置和上面语法一样)
// 配置数据 string:hello: bite// 读取配置 @RestController public class ReadYml {@Value("${string.hello}")private String hello;@RequestMapping("/ymlKey")public String key(){return "读取到值:"+hello;} }
③配置对象
在yml中定义对象
student:id: 1name: Javaage: 18
读取配置信息:这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注 解 @ConfigurationProperties 来读取。
@ConfigurationProperties(prefix = "student") @Component @Data public class Student {private int id;private String name;private int age; } // 这里基本只需要注意成员变量的名称和配置的名字相同就可以了
④配置集合
在yml中配置 list 集合
dbtypes:name:- mysql- sqlserver- db2
读取配置信息:集合的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的
@Component @ConfigurationProperties("dbtypes") @Data public class ListConfig {private List<String> name; }
⑤配置Map
maptypes:map:k1: kk1k2: kk2k3: kk3
读取配置信息:
@Component @ConfigurationProperties("maptypes") @Data public class MapConfig {private HashMap<String,String> map; }
二.Spring Boot日志
1.日志的格式说明
2.日志的级别
①⽇志的级别从⾼到低依次为: FATAL、ERROR、WARN、INFO、DEBUG、TRACE。
• FATAL: 致命信息,表⽰需要⽴即被处理的系统级错误。
• ERROR: 错误信息, 级别较⾼的错误⽇志信息, 但仍然不影响系统的继续运⾏。
• WARN: 警告信息, 不影响使⽤, 但需要注意的问题。
• INFO: 普通信息, ⽤于记录应⽤程序正常运⾏时的⼀些信息, 例如系统启动完成、请求处理完成等。
• DEBUG: 调试信息, 需要调试时候的关键信息打印。
• TRACE: 追踪信息, ⽐DEBUG更细粒度的信息事件(除⾮有特殊⽤意,否则请使⽤DEBUG级别替代)。
②使用案例
@Slf4j @RequestMapping("/printLog") public String printLog() {log.trace("================= trace ===============");log.debug("================= debug ===============");log.info("================= info ===============");log.warn("================= warn ===============");log.error("================= error ===============");return "打印不同级别的⽇志" ; } // 但是这里不能都打印出来,需要配置日志的打印级别才可以,默认是info,意思是只有info及以上的日志才会被打印出来
3.日志的使用
在需要使用日志的类上面加上 @Slf4j 这个注解就可以了。
4.日志的配置
①配置日志的打印级别
⽇志级别配置只需要在配置⽂件中设置"logging.level"配置项即可。
logging.level.root=debug
在配置文件中这样写意味着debug级别及其以上的日志才会被打印出来。
②日志持久化
就是把控制台中的日志保存到文件夹里面,格式如下
logging:file:name: logger/springboot.log #name是配置路径和文件名path: D:/temp #path就是只配置路径,当name存在时path不执行
③配置日志文件分割
日志的内容很多,就是我们可以设定每装满一个文件就存在另一个文件里面
logging:logback:rollingpolicy:max-file-size: 1KB #设置多少内存后分割file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i #分割的文件名类型