一、配置文件( .properties、.yml)
1、.properties 配置文件
1.1、格式
1.2、基本语法
1.2.1、如:一般配置(以键值的形式配置的,key 和 value 之间是以“=”连接的。)
1.2.2、如:自定义配置(使用 @Value 进行读取)
PS:理论上,properties 和 yml 可以一起存在于一个项目中,但是若此时配置文件中出现了相同的配置,properties 配置文件的优先级会更高,加载完后才会加载 yml 配置文件。一般情况下,为了更高效的维护(降低故障率),一般都会只用一种配置文件格式。
2、.yml 配置文件
2.1、格式
2.2、基本语法
2.2.1、如:一般配置
2.2.2、如:自定义配置
(PS:要先把 properties配置文件中的注释才能运行 yml 配置文件)
2.3、配置不同数据类型
PS:验证单双引号的作用--(双引号会解析特殊字符)
2.4、配置对象
结果:
2.5、配置集合
结果:
3、yml 中多平台配置文件
也就是多环境配置文件,本地(开发环境dev)、服务器(发布环境prod、测试环境test)
结果:
4、properties 和 yml 的区别
(1)properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似json 格式的 树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂ 冒号加空格的⽅式设置,并且空格不可省略。
(2)properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的 解决数据冗余的问题。
(3)yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份 配置⽂件作为 Java 和 Go 的共同配置⽂件。
(4)yml 虽然可以和 properties 共存,但⼀个项⽬中建议使⽤统⼀的配置类型⽂件。
(5)yml 支持更多的数据类型。(yml 中的 value 支持整数, 浮点数, 字符串, 布尔值, 数组等类型)
PS:properties 和 yml本质上都是表示了键值对。使用 @value 注解可以在 java 代码中从 yml 里面读取配置值
PS:更详细可参考:【Spring Boot】SpringBoot 配置文件详解_springboot配置文件有哪几种_吞吞吐吐大魔王的博客-CSDN博客
二、日志文件
1、日志的作用:
发现和定位问题;
记录用户登录日志,方便分析用户使正常登录还是恶意破解用户;
记录系统的操作日志,方便数据恢复和定位操作人;
记录程序的执行时间,方便为以后优化程序提供数据支持。
PS:System.out.println();// 不能代替日志:缺少一些信息(如打印的时间,打印线程的相关信息等);不能平分平台(日志过多会影响性能,日志过少会不利于定位问题)
2、自定义打印日志
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import javax.annotation.PostConstruct;
//自定义打印日志---> 先得到日志对象,再通过这个对象打印日志
@Controller
public class LogController {
// private static Logger logger= LoggerFactory.getLogger(LogController.class);//获得日志对象
private Logger logger= LoggerFactory.getLogger(this.getClass());//获得日志对象
@PostConstruct
public void init(){//打印日志
logger.info("I'm logger.....");
System.out.println("I'm logger1.....");
}
}
PS:Logger 对象是属于 org.slf4j 包下的,要注意不能导错包。
PS:SpringBoot 中默认使用 slf4j 来打印日志。
3、日志的持久化
也就是打印出日志并保存起来。
3.1、通过配置路径
PS:slf4j 默认文件超过10KB 就会进行分割,隔日也会进行分割。
3.2、通过配置文件名
PS:该方式也可以配置路径
4、日志的级别
trace:微量,少许的意思,级别最低;
debug:需要调试时候的关键信息打印;
info:普通的打印信息(默认⽇志级别);
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;
fatal:致命的,因为代码异常导致程序退出执⾏的事件。
PS:顺序从上到下,越往下级别越高,越往下收到的消息越多。
PS:默认的级别是 info 级别。
5、更简单的方式输出日志
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
//或者以下方式
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<optional>true</optional>
</dependency>