spingboot默认的两种配置文件:
*.application.properties
*.application.yml
Tips: 配置文件放在/src/main/resources目录下或者类路径/config
properties与yml的使用方法不同之处
例如我们要设定项目的标题和描述
在properties的写法:
com.lazy.title = springboot
com.lazy.description = 这是一个学习项目
在yml中的写法
com:
lazy:
title: springboot
description: 这是一个学习项目
在yml中的键值对必须要空格隔开,并且yml的层级关系是看左边空格对应出来的大小来判断。
字符串不用单双引号来判定,但是有转义字符的话,就得考虑了。
若是你想yml用行内写法的话,那么就类似于json字符串的写法了。
以上就是简单的properties和yml的用法,那么我们讲解如何来将配置文件使用到项目中
properties举例,yml相似
1. 使用注解@configurationProperties来获取配置文件中的数据,并且使之一一对应。
application.properties中的代码如下:
user.id = 1
user.name = xiaoling
user.passWord = 1235
对应到user实体类:
/* 利用@configurationProperties(prefix = "")来实现配置文件与实体类对应
prefix对应的是application.properties中的user。
然而@configurationProperties必须在容器内才能实现,则要加上@Component。
*/
@Component
@ConfigurationProperties(prefix = "user")
public class User {
private int id;
private String name;
private String passWord;
...........
}
2. 使用注解@value对成员变量进行赋值
@Component
public class User {
@Value("${user.id}")
private int id;
@Value("${user.name}")
private String name;
@Value("${user.passWord}")
private String passWord;
...........
}
Tips: @configurationProperities可以使用驼峰命名法。
3. 使用@PropertiesSource(value = {“classpath: xxx”})
该注解只是将配置文件放在了全局的配置文件中,所以要使用@configurationProperties来读取xx配置文件的数。
@PropertySource(value = {"classpath:user.properties"})
public class User {
private int id;
private String name;
private String passWord;
╮(╯▽╰)╭ 有人会说为什么要使用@PropertiesSource这么麻烦,不如直接用@ConfigurationProperties,但是!!!分开不是为了方便查看修改嘛
这个是我学习springboot期间的一些相关笔记,若是有不对的地方欢迎一起讨论一下