SpringBoot实现yml配置文件为变量赋值
时间:2022-06-26 10:34:47|栏目:JAVA代码|点击: 次
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文件里配置的内容了
降低了代码的耦合
阅读排行
- 1Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 2Java Swing组件BoxLayout布局用法示例
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4java中-jar 与nohup的对比
- 5深入理解Java中的克隆
- 6Java中自定义异常详解及实例代码
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9深入解析java虚拟机
- 10spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)