一.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=false
username: root
password: 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: 1 name: Java age: 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: kk1 k2: kk2 k3: 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 #分割的文件名类型