SpringBoot配置文件类型
1.1 yml配置文件简介
YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YML文件的扩展名可以使用.yml或者.yaml。
1.2 配置普通数据
在resource目录创建application.yml如图所示:
语法: key: value
示例代码如图所示:
注意:value之前有一个空格。
1.3 配置对象数据
语法:
key:
key1: value1
key2: value2
或者:
key: {key1: value1,key2: value2}
示例代码如图所示:
注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一个级别。
#行内对象配置
student: {name: Adair,age: 24,addr: GuiZhou}
1.4 配置数据、集合(对象数据)、Map数据
如图所示:
注意:value1与之间的 - 之间存在一个空格。
1.5 SpringBoot配置文件与配置类的属性映射方式
步骤如下:
使用注解@Value映射
我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上
使用pplication.yml配置如下:
创建QuickStart2Controller类代码如下:
package com.txw.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author Adair
*/
@SuppressWarnings("all") // 注解警告信息
@Controller
public class QuickStart2Controller {
@Value("${name}")
private String name;
@Value("${person.age}")
private Integer age;
@Value("${person.addr}")
private String address;
@RequestMapping("/quick2")
@ResponseBody
public String quick2(){
//获得配置文件的信息
return "name:"+name+",age="+age+",address="+address;
}
运行启动类,通过浏览器访问地址:http://localhost:8081/quick2 结果如下:
1.6 使用注解@ConfigurationProperties映射
通过注解@ConfigurationProperties(prefix=“配置文件中的key的前缀”)可以将配置文件中的配置自动与实体进行映射。
application.xml配置如下:
创建QuickStart3Controller的代码如下:
package com.txw.controller;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author Adair
*/
@SuppressWarnings("all") // 注解警告信息
@Controller
@ConfigurationProperties(prefix = "person")
public class QuickStart3Controller {
private String name;
private Integer age;
private String address;
@RequestMapping("/quick3")
@ResponseBody
public String quick2(){
//获得配置文件的信息
return "name:"+ name +",age="+ age +",address="+ address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
运行启动类,通过浏览器访问地址:http://localhost:8081/quick3 结果如下:
注意:使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方
法才可以,而使用@Value注解修饰的字段不需要提供set方法
如图所示的警告:
跳转浏览器页面上如图所示,并复制依赖坐标。
粘贴到pom.xml文件,并刷新pom.xml文件,如图所示:
就没有这个警告信息了。