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);
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java布隆过滤器的应用实例

    Java布隆过滤器的应用实例

    这篇文章主要介绍了Java布隆过滤器的应用实例,在程序的世界中,布隆过滤器是程序员的一把利器,利用它可以快速地解决项目中一些比较棘手的问题,如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断和缓存穿透等问题,需要的朋友可以参考下
    2023-11-11
  • Linux服务器Java进程消失问题解决

    Linux服务器Java进程消失问题解决

    这篇文章主要介绍了Linux服务器Java进程消失问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 浅谈Mybatis乐观锁插件

    浅谈Mybatis乐观锁插件

    这篇文章主要介绍了浅谈Mybatis乐观锁插件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 使用java的注解(用在java类的方法上的注解)方法

    使用java的注解(用在java类的方法上的注解)方法

    这篇文章主要介绍了使用java的注解(用在java类的方法上的注解)方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java设计模式之工厂方法和抽象工厂

    Java设计模式之工厂方法和抽象工厂

    本文详细讲解了Java设计模式之工厂方法和抽象工厂,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • SpringAOP四种通知类型+环绕通知说明

    SpringAOP四种通知类型+环绕通知说明

    这篇文章主要介绍了SpringAOP四种通知类型+环绕通知说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中Math类常用方法代码详解

    Java中Math类常用方法代码详解

    本文是小编最新给大家整理的关于Java中Math类常用方法的知识,通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2017-07-07
  • Java实现浏览器端大文件分片上传

    Java实现浏览器端大文件分片上传

    本文主要介绍了Java实现浏览器端大文件分片上传,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • java图搜索算法之DFS与BFS详解

    java图搜索算法之DFS与BFS详解

    这篇文章主要为大家介绍了java数据结构中可以秒杀一切图算法的DFS与BFS作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Java 3D入门之基本图形功能 附源码

    Java 3D入门之基本图形功能 附源码

    Java3D API是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐且可以加入到J2SE、J2EE的整套架构,故保证了Java3D技术强大的扩展性
    2021-10-10

最新评论