SpringBoot實現yml配置文件為變量賦值
yml配置文件為變量賦值
1. 創建person類和Car類
在person類上加註釋 @ConfigurationProperties(prefix = "person"),表明這個類的成員變量的值從配置類註入。
註意這裡的person類的成員變量需要有get/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類創建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.創建啟動類
加上註釋@EnableConfigurationProperties(Person.class),啟動的時候提醒Person這個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; } }
測試結果:
在yml文件中配置變量
在開發中很多內容不能寫死在代碼中
就需要動態的配置
例如:二維碼的內容
yml文件裡增加變量配置
QrCode: content: http://192.168.1.1:8081
在代碼裡獲取信息的時候
@Value("${QrCode.content}") private String content;
這樣就可以獲取yml文件裡配置的內容瞭
降低瞭代碼的耦合
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot 配置文件給實體註入值方式
- SpringBoot整合MongoDB的實現步驟
- SpringBoot輕松整合MongoDB的全過程記錄
- Java面向對象的封裝特征深度解析
- SpringBoot從配置文件中獲取屬性的四種方法總結