一、springboot的配置文件

通常有:

application.properties

application.yaml

application.yml三种

.properties是创建springboot工程自动创建的,也是以前web等技术或spring框架的默认配置文件格式。

yaml和yml我目前还不知道哪个用的多,我一般会用yml,因为优先级较yaml高。

二、配置

.properties中的配置形式是键值对形式

例如:

1.服务器端口配置:server.port=8080

2.修改springboot启时的logo:

添加在resources下添加banner.txt,里面写想要的样子

我写了下面这个:

 ____   _         _
|  _ \ (_)       | |
| |_) | _   __ _ | |      ___    __ _   ___
|  _ < | | / _` || |     / _ \  / _` | / _ \
| |_) || || (_| || |____| (_) || (_| || (_) |
|____/ |_| \__, ||______|\___/  \__, | \___/
            __/ |                __/ |
           |___/                |___/

修改后:

3.修改日志的配置:

可以设置指定目录的日志级别,默认的值是“info”

logging.level.root=info
logging.level.com.xxx=warn/debug

三、三者的优先级

properties>yml>yaml

 

 三者都在的时候:

拿走properties,剩下yaml和yml时:

由此得出优先级顺序是properties>yml>yaml

四、yml里面的数据格式(数据前面要用空格冒号隔开

1.数据格式特点:

大小写敏感;
属性层级关系使用多行描述,每行结尾使用冒号结束;
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键,貌似idea会自动识别);
属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔);
# 表示注释。

2.键值对表示方式:

boolean: TRUE #TRUE,true,True大小写均可,false也一样
float: 3.14 #6.8523015e+5 #支持科学计数法
int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~ #~表示null
string: HelloWorld #字符串可以直接书写
string2: "Hello World" #可以使用双引号包裹特殊字符
date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区(这个一般少见)

 3.数组表示方法:

likes:
  - eat
  - basketball
  - sleep

liks2: [eat,basketball,sleep]

users:
  - name: zhangsan
    age: 23
  - name: lisi
    age: 22
//一个横线就是一组数据
users3: [{name:zhangsan,age:23},{name:lisi,age:24}] //还可以按照JSON格式来写

五、读取yml数据

使用 @Value 读取单个数据,属性名引用方式: ${一级属性名.二级属性名……}

1.读取单个数据

比如我想读取张三的年龄:

@Value("${users[0].age}")
private String age; //这个命名为age只是为了好看,与要读取的变量名无关

注意:属性值中如果出现转移字符,需要使用双引号包裹(\t和\n就是转义字符)

lesson: "Spring\tboot\nlesson"

2.使用Environment对象封装全部配置信息

还是打印刚刚张三的年龄:

@Autowired
private Environment environment;
System.out.println(env.getProperty("user[0].name"));

3.封装一组数据(自定义对象封装指定数据

相较于封装全部数据,封装一组数据,我可以想拿什么就拿什么

datasource:
 driver-class-name: com.mysql.cj.jdbc.Driver
 url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC
 username: root
 password: 密码
@Component
@ConfigurationProperties(prefix = "datasource")
public class DataSource {
    private String driverClassName;
    private String url;
    private String userName;
    private String password; 
}
@RestController
@RequestMapping("/run")
public class RunController {
    @Autowired
    private MyDataSource myDataSource;
}
这样就可以拿到我自己定义的dataSource配置的数据了
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐