SpringBoot實(shí)現(xiàn)yml配置文件為變量賦值
yml配置文件為變量賦值
1. 創(chuàng)建person類和Car類
在person類上加注釋 @ConfigurationProperties(prefix = "person"),表明這個(gè)類的成員變量的值從配置類注入。
注意這里的person類的成員變量需要有g(shù)et/set方法。
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ConfigurationProperties(prefix = "person")
public class Person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public boolean isMarriage() {
return isMarriage;
}
public void setMarriage(boolean marriage) {
isMarriage = marriage;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public List<String> getHobbit() {
return hobbit;
}
public void setHobbit(List<String> hobbit) {
this.hobbit = hobbit;
}
public Map<String, Object> getMaps() {
return maps;
}
public void setMaps(Map<String, Object> maps) {
this.maps = maps;
}
public Date getBirthDate() {
return birthDate;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
private String name;
private Integer age;
private double salary;
private boolean isMarriage;
private Car car;
private List<String> hobbit;
private Map<String, Object> maps;
private Date birthDate;
}
public class Car {
private String carName;
private String carBrand;
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarBrand() {
return carBrand;
}
public void setCarBrand(String carBrand) {
this.carBrand = carBrand;
}
}2. 為person類創(chuàng)建yml配置文件
person: ? name: zhangsan ? age: 18 ? salary: 8888.88 ? car: ? ? carName: 奧迪A6L ? ? carBrand: 奧迪 ? hobbit: ? ? - 籃球 ? ? - rap ? ? - 唱歌 ? ? - 保健 ? maps: ? ? k1: v1 ? ? k2: v2 ? birthDate: 1991/08/21 ? marriage: true
3.創(chuàng)建啟動(dòng)類
加上注釋@EnableConfigurationProperties(Person.class),啟動(dòng)的時(shí)候提醒Person這個(gè)class的成員變量是可以從配置文件注入的。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableConfigurationProperties(Person.class)
@RestController
public class Tulingspc01SpringbootPropertiesMappingApplication {
@Autowired
private Person person;
public static void main(String[] args) {
SpringApplication.run(Tulingspc01SpringbootPropertiesMappingApplication.class, args);
}
@RequestMapping("/getPersonInfo")
public Person getPersonInfo() {
return person;
}
}測(cè)試結(jié)果:


在yml文件中配置變量
在開(kāi)發(fā)中很多內(nèi)容不能寫(xiě)死在代碼中
就需要?jiǎng)討B(tài)的配置
例如:二維碼的內(nèi)容
yml文件里增加變量配置
QrCode: ? content: http://192.168.1.1:8081
在代碼里獲取信息的時(shí)候
@Value("${QrCode.content}")
private String content;這樣就可以獲取yml文件里配置的內(nèi)容了
降低了代碼的耦合
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
玩轉(zhuǎn)spring boot MVC應(yīng)用(2)
玩轉(zhuǎn)spring boot,如何快速搭建一個(gè)MCV程序?這篇文章為大家詳細(xì)主要介紹了一個(gè)MCV程序的快速搭建過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
springboot使用spring-data-jpa操作MySQL數(shù)據(jù)庫(kù)
這篇文章主要介紹了springboot使用spring-data-jpa操作MySQL數(shù)據(jù)庫(kù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

