Springboot如何配置yml文件与映射到java类
更新时间:2023年09月18日 14:34:39 作者:Students Mr sun
这篇文章主要介绍了Springboot如何配置yml文件与映射到java类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Springboot配置yml文件与映射到java类
YAML语法
1、基本语法 k:(空格)v:表示一对键值对(空格必须有)
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
属性和值也是大小写敏感;
2、值的写法 字面量:普通的值(数字,字符串,布尔)
- k: v:字面直接来写; 字符串默认不用加上单引号或者双引号;
- "":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: "zhangsan \n lisi":输出;zhangsan 换行 lisi '':
- 单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
- name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
对象、Map(属性和值)(键值对):
- k: v:在下一行来写对象的属性和值的关系;
- 注意缩进 对象还是k: v的方式
我们可以导入配置文件处理器,以后编写配置就有提示了
<!--配置 yml文件处理器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
完整代码
Dog类
public class Dog { String name; int age; @Override public String toString() { return "Dog{" + "name='" + name + '\'' + ", age=" + age + '}'; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
person 类
Person 类 //将配置文件中的值映射到person中 //@ConfigurationProperties 告诉springboot将本类中的所有属性与配置文件中相关的属性配置 //这个组件是容器中的组件,才能提供功能加@Component注解 @Component @ConfigurationProperties(prefix = "person") public class Person { String name; int age; Date birth; Map<String,Object> map; Dog dog; List list; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + ", birth=" + birth + ", map=" + map + ", dog=" + dog + ", list=" + list + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } public List getList() { return list; } public void setList(List list) { this.list = list; } }
yml文件中的配置:
person: name: sunchao age: 12 birth: 2022/12/12 map: {k1: v1,k2: v2} list: [lisi,zhangsan] dog: name: xiaogou age: 2
测试类:
package com.sunchao.demo; import com.sunchao.demo.bean.Person; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest class DemoApplicationTests { @Autowired Person person; @Test void contextLoads() { System.out.println(person); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring注解中@Autowired和@Bean的区别详解
这篇文章主要详细介绍了Spring注解中@Autowired和@Bean二者有什么区别,文中通过两个注解的使用场景介绍了二者的区别,感兴趣的同学可以参考阅读2023-06-06SpringBoot中将@Bean方法解析为BeanDefinition详解
这篇文章主要介绍了SpringBoot中将@Bean方法解析为BeanDefinition详解,得到的BeanDefinition是ConfigurationClassBeanDefinition类型,会为BeanDefinition设置factoryMethodName,这意味着当实例化这个bean的时候将采用工厂方法,需要的朋友可以参考下2023-12-12
最新评论