在.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;
}
}