代码编织梦想

YAML配置

YAML和properties类似,不过是格式方面有一些改变,其他的改变不大,我们来写例子看一下,首先写两个实体类:
Autor:

@Component
@ConfigurationProperties(prefix = "autor")
public class Autor {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Autor{" +
                "name='" + name + '\'' +
                '}';
    }
}

Book:

@Component
@ConfigurationProperties(prefix = "book")
public class Book {
    private String name;
    private String[] tags;
    private List<Autor> autor;

    public List<Autor> getAutor() {
        return autor;
    }

    public void setAutor(List<Autor> autor) {
        this.autor = autor;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", tags=" + Arrays.toString(tags) +
                ", autor=" + autor +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getTags() {
        return tags;
    }

    public void setTags(String[] tags) {
        this.tags = tags;
    }
}

YAML配置文件:

book:
  name: 三国演义      #字符串
  tags:              #字符串数组
    - 四大名著
    - 经典
    - 古典文学
  autor:             #对象数组
    - name: 罗贯中
    - name: 施耐庵

编写测试类:

@SpringBootTest
class Demo07ApplicationTests {
    @Autowired
    Book book;
    @Autowired
    Autor autor;

    @Test
    void contextLoads() {
        System.out.println("book = " + book);
    }
}

得到结果:
在这里插入图片描述

属性注入和get和set方法的联系

我们总结一下:注入是通过类属性的get和set方法,跟属性的名字无关,不管属性的名字如何只要get和set方法名正确,也可以正确注入,这种机制是通过java内部的内省机制完成的
比如:我们将Autor类中name属性名字全部换成aa,我们在测试一下结果

@Component
@ConfigurationProperties(prefix = "autor")
public class Autor {
    private String aa;

    public String getName() {
        return aa;
    }

    public void setName(String name) {
        this.aa = name;
    }

    @Override
    public String toString() {
        return "Autor{" +
                "name='" + aa + '\'' +
                '}';
    }
}

测试通过,显然属性名字并没有什么影响:
在这里插入图片描述
继续,我们修改get和set的方法名字,将Name换为aa:

@Component
@ConfigurationProperties(prefix = "autor")
public class Autor {
    private String aa;

    public String getaa() {
        return aa;
    }

    public void setaa(String name) {
        this.aa = name;
    }

    @Override
    public String toString() {
        return "Autor{" +
                "name='" + aa + '\'' +
                '}';
    }
}

发现出错了,并不能成功的注入
在这里插入图片描述

Profile问题

我们通过设置配置文化来配置开发环境、生产、测试环境的配置,分别设置不同的配置提高开发效率,将公共的部分提取出来放在总配置中
在这里插入图片描述
application.yml配置:

spring:
  profiles:
    active: prod  #dev开发环境  prod生产环境  test测试环境 
server:
  port: 8080
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46635265/article/details/122482048

yaml文件的语法及注意事项-爱代码爱编程

因为工作需要,最近在倒腾symfony,而symfony框架里面配置文件超级多,用的都是yaml文件作为配置文件,由于自己对该文件不是很熟悉,故找了资料了解了下,此为学习笔记。 首先举个例子, 请将如下php数组转换为yaml格式: $bat = array( 'website' =>array( 'baidu' =>

golang——使用yaml配置文件_karen9708的博客-爱代码爱编程_golang yaml

Golang——使用yaml配置文件 之前一直从事java开发,习惯了使用yaml文件的格式,尤其是清晰的层次结构、注释。抱着好奇心以及对golang的看好开始学习golang,逐渐喜欢上了这门语言,也尝试着在项目中使用g

我为什么选择yaml格式做配置文件_fsilence璐豪的博客-爱代码爱编程

最近要写个程序的自动生成脚本,需要用到配置文件。初期考虑使用json,再使用json的过程中,我遇到了一下问题: 1. json不支持注释 2. 过多的层级嵌套 3. 过于严苛的格式 json不支持注释 在定义一

configtx.yaml配置文件解析_thedaydreamer的博客-爱代码爱编程_configtx.yaml

configtx.yaml配置文件解析 YAML语言语法 首先需要了解YAML语言的语法。可以参考<<YAML 语言教程>> configtx.yaml主要用到了以下语法: 符号含义<&

深入spring boot (四):yaml属性配置文件使用详解_weixin_34248487的博客-爱代码爱编程

Spring Boot弱化配置的特性让属性配置文件的使用也更加便捷,它默认支持对application.properties或application.yml属性配置文件处理,即在application.properties或application.yml文件中添加属性配置,可以使用@Value注解将属性值注入到beans中,或使用@Configur

使用yaml配置文件_fly_xiaoma的博客-爱代码爱编程

yaml: yet another markup language,另一种标记语言,专门用来写配置文件,类似于json格式。 语法 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可# 表示注释,从这个字符一直到行尾,都会被解析器忽略 数据结构: 对象:键值对的集合,又称为映射

yaml配置数组写法_阿炸mm的博客-爱代码爱编程_yaml 数组

一.yaml数组 texts: -"mango" -"apple" -"banana" 以上yaml配置文件等同于的js写法 var texts=["mango","apple","banana"] 引用该yaml配置的数组: const texts = loader('texts.yaml')['texts

C++读写yaml配置文件-爱代码爱编程

文章目录 YAML基础语法基本规则三种数据结构map,散列表list,数组scalar,纯量数据结构嵌套map嵌套mapmap嵌套listlist嵌套listlist嵌套map利用yaml-cpp读写yaml配置文件首先下载源码读取 yaml 配置文件NodeNode 是 yaml-cpp 中的核心概念,它用于存储解析后的 yaml 信息。yaml

YAML配置文件基本用法总结-爱代码爱编程

文章目录 一.简介二.基本的语法结构1. 当数据类型是字面量2.当数据类型是对象、键值对的集合3.当数据类型是数组、一组按次序排列的值 一.简介 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup