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    #分割的文件名类型
相关推荐
apcipot_rain2 小时前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
辛一一5 小时前
neo4j图数据库基本概念和向量使用
数据库·neo4j
{{uname}}5 小时前
利用WebSocket实现实时通知
网络·spring boot·websocket·网络协议
熊大如如5 小时前
Java 反射
java·开发语言
巨龙之路6 小时前
什么是时序数据库?
数据库·时序数据库
蔡蓝6 小时前
binlog日志以及MySQL的数据同步
数据库·mysql
猿来入此小猿6 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
goTsHgo6 小时前
Spring Boot 自动装配原理详解
java·spring boot
卑微的Coder6 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
是店小二呀6 小时前
【金仓数据库征文】金融行业中的国产化数据库替代应用实践
数据库·金融·数据库平替用金仓·金仓数据库2025征文