目录

Spring Boot

一.SpringBoot配置文件

有三种种配置文件:application.yaml,application.yml,application.properties,但是我们一般使用yml结尾的配置文件其它一般不用。

1.properties 配置⽂件说明

①基本语法和配置文件的读取

java 复制代码
// 配置文件的部分
// 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 配置⽂件说明

①基本语法

python 复制代码
# 这个代码案例是连接数据库的配置
# 然后注意':'后面有一个空格不能省略
# 每一层的前面有两个空格
spring:
  datasource:
    url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=false
    username: root
    password: root

②使用

①yml 配置不同数据类型及 null

python 复制代码
# 字符串 这里的字符串建议不要加上单引号或者双引号
value1: Hello
# 布尔值,true或false
value2: true
value3: false
# 整数
value4: 10
# 浮点数
value5: 3.14159

# Null,~代表null
value6: ~

# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
value7: ''

②yml 配置读取(读取配置和上面语法一样)

java 复制代码
// 配置数据
string:
  hello: bite

// 读取配置
@RestController
public class ReadYml {
    @Value("${string.hello}")
    private String hello;

    @RequestMapping("/ymlKey")
    public String key(){
        return "读取到值:"+hello;
    }
}

③配置对象

在yml中定义对象

java 复制代码
student:
  id: 1
  name: Java
  age: 18

读取配置信息:这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注 解 @ConfigurationProperties 来读取。

java 复制代码
@ConfigurationProperties(prefix = "student")
@Component
@Data
public class Student {
    private int id;
    private String name;
    private int age;
}
// 这里基本只需要注意成员变量的名称和配置的名字相同就可以了

④配置集合

在yml中配置 list 集合

java 复制代码
dbtypes:
  name:
    - mysql
    - sqlserver
    - db2

读取配置信息:集合的读取和对象⼀样,也是使⽤ @ConfigurationProperties 来读取的

java 复制代码
@Component
@ConfigurationProperties("dbtypes")
@Data
public class ListConfig {
    private List<String> name;
}

⑤配置Map

java 复制代码
maptypes:
  map:
    k1: kk1
    k2: kk2
    k3: kk3

读取配置信息:

java 复制代码
@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级别替代)。

②使用案例

java 复制代码
@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"配置项即可。

bash 复制代码
logging.level.root=debug

在配置文件中这样写意味着debug级别及其以上的日志才会被打印出来。

②日志持久化

就是把控制台中的日志保存到文件夹里面,格式如下

bash 复制代码
logging:
  file:
    name: logger/springboot.log    #name是配置路径和文件名
    path: D:/temp     #path就是只配置路径,当name存在时path不执行

③配置日志文件分割

日志的内容很多,就是我们可以设定每装满一个文件就存在另一个文件里面

bash 复制代码
logging:
  logback:
    rollingpolicy:
      max-file-size: 1KB        #设置多少内存后分割
      file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i    #分割的文件名类型
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Andya4 分钟前
Java | 基于 ThreadLocal 实现多客户端访问设备的 REST 请求下发
java·后端
风象南9 分钟前
SpringBoot实战:七种统计方法耗时的实现方式
java·spring boot·后端
无始无终99310 分钟前
Java 8 Stream API
java·spring boot·spring·servlet
计算机-秋大田12 分钟前
基于Spring Boot的电动车智能充电服务平台的设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·课程设计
努力努力再努力wz15 分钟前
【c++深入系列】:类与对象详解(上)
java·运维·服务器·开发语言·c++·c
牧竹子18 分钟前
springboot在feign和线程池中使用TraceId日志链路追踪(最终版)-2
java·spring boot·后端
2401_8532757325 分钟前
springBoot中雪花算术法
spring boot·后端·dreamweaver
请叫我鹏鹏君41 分钟前
ThreadLocal详解与高频场景实战指南
java·多线程
陌漠ardently1 小时前
数据库基础知识点(系列四)
数据库·oracle
小杨xyyyyyyy1 小时前
JVM - 年轻代和老年代
java·开发语言·jvm·面试