在.yml文件中有些变量或者实例,你想在controller中访问,可以用@Value和@ConfigurationProperties进行访问。
1.添加执行器
2.@Value
3.@ConfigurationProperties
1.在pom.xml中添加执行器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
小提示:如果出现没找到包,可以刷新一下maven依赖。
一个yml文件示例:
#对象的配置 缩进
#person:
# age: 18
#name: zhangsan
#order: beijing
#行内对象配置
#person:{age: 18,name: zhangsan,adder: beijing}
#配置数据、集合
#city:
# - beijing
# - tianjing
# - nanjing
#citylist: [beijing,tianjing,nanjing]
ynamesimple: zhangsan
ystudent:
yname: tom
yage: 18
yaddr: beijing
#studentlist:[{name: tom,age: 18,addr: beijing},{name: lay,age: 20,addr: nanjing}]
#map配置
#Map:
# key1: value1
# key2: value2
yteacher:
yname: jerry
yage: 50
yaddr: nanjing
person:
name1: tom
age: 19
addr: shanghai
2.@Value
适用条件:因为要每个变量上添加这个注解,适用于访问数据不太多的情况下。
语法:变量上添加 @Value("${ynamesimple}"),@Value("${ystudent.yname}")
命名事项:yml 文件中的名字可以与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;
@Controller
public class quickController2 {
@Value("${ynamesimple}")
private String namesimple; //1.变量@Value("${name}")
@Value("${ystudent.yname}")
private String sname; //2.对象@Value("${s.name}")
@Value("${ystudent.yaddr}")
private String saddr;
@RequestMapping("/quick2")
@ResponseBody
public String quick2()
{
return "访问成功:"+"name:"+namesimple+",s.name="+sname+",s.addr="+saddr;
}
}
3.@ConfigurationProperties
适用条件:如果有挺多的变量可以用这个注解
语法: 类前面@ConfigurationProperties(prefix = "person")
命名事项:yml 文件中的名字可以与controller的名字一致。
@Controller
@ConfigurationProperties(prefix = "person")
public class quickController3 {
private String name;
private String addr;
private Integer age;
@RequestMapping("/quick3")
@ResponseBody
public String quick3(){
//获得配置文件的信息
return "name:"+name+", addr="+addr+", age="+age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}