Spring Boot中的配置文件起到了非常重要的作用。在Spring Boot中,可以通过配置文件来配置应用程序的一系列属性,包括数据库连接、服务器端口号、日志级别等等。通过配置文件,可以方便地对应用程序进行配置管理和集中管理。另外,Spring Boot中还支持多种配置文件格式,包括properties、yaml、json等,可以根据实际情况选择使用适合自己的配置文件格式。同时,Spring Boot还提供了一系列注解和工具类,可以方便地读取和解析配置文件的内容,使配置文件的使用变得更加简单和灵活。
整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:
1)数据库的连接信息(包含⽤户名和密码的设置);
2)项⽬的启动端⼝;
3)第三⽅系统的调⽤秘钥等信息;
4)⽤于发现和定位问题的普通⽇志和异常⽇志等。
Spring Boot 配置文件主要分为两种格式
1) .properties
2) .yml(.yaml)
Spring 有个自动识别的
并且这两种后缀是可以同时存在的,我们来看看:
在Spring Boot中,可以同时使用.yml和.properties文件作为配置文件,但是如果同时存在相同的配置属性,以.properties文件中的属性为准。因为Spring Boot会首先加载.properties文件,然后再加载.yml文件,如果存在相同的属性,后面加载的.yml文件不会覆盖前面加载的.properties文件中的属性。如果想要优先使用.yml文件中的配置,可以在application.properties文件中添加以下配置:
spring.config.name=application
当yaml和properties文件同时存在于Spring Boot应用程序的classpath下时,加载顺序是以文件名的字母顺序为准的。具体来说,Spring Boot首先会加载所有以application.properties结尾的文件,然后再加载以application.yml结尾的文件。如果两个文件名相同,则yaml文件的优先级高于properties文件。
例如,如果同时存在application.properties和application.yml文件,则Spring Boot会首先加载application.properties文件,然后再加载application.yml文件。如果存在greeting.properties和greeting.yml文件,则Spring Boot会首先加载greeting.properties文件,然后再加载greeting.yml文件。但是,如果存在greeting.properties和greeting.yaml文件,则Spring Boot会首先加载greeting.yaml文件,因为yaml文件的字母顺序要比properties文件高。
我们来试试看:
补充另外一种情况: 在只有yml和yaml情况下,以yml为准。
properties 链接案例:
spring.datasource.url=jdbc:mysql://localhost:3306/database_name
spring.datasource.username=root
spring.datasource.password=123456
所以我们之前写的 yaml 也是可行的。
yml 优点分析:
yml基本语法:
spring:
datasource:
url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
username: root
password:
如果不需要进行复杂的日志配置,则在配置文件中进行简单的日志配置即可,默认情况下,SpringBoot日志只记录到控制台,不写日志文件。如果希望在控制台输出之外编写日志文件,则需要在 application.yml 配置文件中进行配置
logging:
file:
name: D:/Projects/spring-test.log # 日志文件绝对路径及名称
level:
root: info #日志级别 root表示所有包,也可以单独配置具体包 fatal>error>warn>info>debug>trace>off
注意: Spring Boot中的logging.path和logging.file这2个属性,只需要配置其中之一即可,如果同时配置,则使用logging.file属性。
当配置了loggin.path属性时,将在该路径下生成spring.log文件,即:此时使用默认的日志文件名spring.log
当配置了loggin.file属性时,将在指定路径下生成指定名称的日志文件。默认为项目相对路径,可以为logging.file指定绝对路径
在程序中获取日志对象需要使用到日志工厂: LoggerFactory
得到日志对象
private static Logger logger = LoggerFactory.getLogger(UserController.class);
日志工厂需要将每个类的类型传递进去,这样我们才知道日志的归属类,才方便、更直观的定位到问题类
这里需要注意, Logger 对象是属于 org.slf4j 包下的,不要导错了。
日志级别配置只需要在配置文件中设置 “ logging.level ” 配置项即可:
logging:
level:
root: error
添加依赖:
举例:
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/p")
@Slf4j
public class PersonController {
@RequestMapping("/log")
public void loggerTest() {
log.error("------------------- error -----------------");
}
}
当我们访问这个 web 网页时:
他就会打印出这个日志。
总结: