一、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
读取单个数据,属性名引用方式:
${一级属性名.二级属性名……}
@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配置的数据了
相关文章
暂无评论...