Spring Boot

发布于:2025-03-25 ⋅ 阅读:(25) ⋅ 点赞:(0)

一.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    #分割的文件名类型

网站公告

今日签到

点亮在社区的每一天
去签到