yml配置文件为变量赋值
伟娃娃 人气:2yml配置文件为变量赋值
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文件里配置的内容了
降低了代码的耦合
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容