我们已经将SpringBoot创建好了,但是,我们针对其底层的配置还没有学习。
properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的==》
- # 配置项目端口号
- server.port=8084
- spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
- characterEncoding=utf8
- spring.datasource.username=root
- spring.datasource.password=root
-
- //PS:小技巧:配置文件中使用“#”来添加注释信息。
如果在项目中,想要主动的读取配置文件中的内容,可以使用 @Value 注解来实现
@Component 在 Spring Boot 启动时候会注入到框架中,注入到框架中时会执行
@PostConstruct 初始化方法,这个时候就能读取到配置信息了
- package org.example.controller;
-
-
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import javax.annotation.PostConstruct;
-
- // 也会注册Bean对象
- // 相比@Controller,多了一个作用,将方法返回值作为Http相应正文
- @RestController
- @RequestMapping("/user")
- @Slf4j
- public class UserController {
-
- @Value("${my.user.name}")
- private String username;
-
- @PostConstruct
- public void init() {
- //System.out.println(username);
- log.debug("配置文件中的my.user.name" + username);
- }
- }
我们从图中也可以看出其实使用这种配置书写是非常冗余的。
yml 最大的优势是可以跨语言,不止是 Java 中可以使用 golang、python 都可以使用 yaml 作为配置文件。
yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文冒号加空格的方式组成的,其中的空格不可省略。
这样就看起来十分简洁明了。
2.2.1 yml 配置不同数据类型及 null
- # 字符串
- string.value: Hello
- # 布尔值,true或false
- boolean.value: true
- boolean.value1: false
- # 整数
- int.value: 10
- int.value1: 0b1010_0111_0100_1010_1110 # 二进制
- # 浮点数
- float.value: 3.14159
- float.value1: 314159e-5 # 科学计数法
- # Null,~代表null
- null.value: ~
同1.2。
学习编程,那我们使用日志来获取信息就错不了。SpringBoot在启动后,默认就有日志输出。
log4j:apache提供的日志框架
log4j2:log4j的升级版
logback:springboot默认的内置框架
slf4j:日志的桥接框架
日志级别配置只需要在配置文件中设置“logging.level”配置项即可,如下所示
注意:使用情况在类上加注解 @Sef4j @PostConstruct public void init() { //System.out.println(username); log.debug("配置文件中的my.user.name" + username); }使用日志打印对象,只会打印日志级别以上的内容。
也可以使用字符串的方式打印
log.warn("配置文件中的my.user.name:{}",username);
在文件中打印
配置日志文件的保存路径:
# 设置日志文件的目录
logging:
file:
path: D:\home\xxx
配置日志文件的文件名:
# 设置日志文件的文件名
logging:
file:
name: D:\home\xxx\xxx.xxx