springboot读取自定义的yml文件中的list对象

孤剑者      2022-04-21     511

关键词:

Yml文件(novellist.xml)如下:

novellist:
  list:
    - name: 笑傲江湖
      type: 武侠
      master: 令狐冲
      author: 金庸
      description: 小说以通过叙述华山派大弟子令狐冲的经历,反映了武林各派争霸夺权的历程。
    - name: 诛仙
      type: 仙侠
      master: 张小凡
      author: 萧鼎
      description: 该小说以“天地不仁,以万物为刍狗”为主题,讲述了青云山下的普通少年张小凡的成长经历以及与两位奇女子凄美的爱情故事,整部小说构思巧妙、气势恢宏,开启了一个独具魅力的东方仙侠传奇架空世界,情节跌宕起伏,人物性格鲜明,将爱情、亲情、友情与波澜壮阔的正邪搏斗、命运交战汇集在一起,文笔优美,故事生动。
    - name: 英雄志
      type: 武侠
      master: 观海云远
      author: 孙晓
      description: 《英雄志》为一虚构中国明朝历史的古典小说,借用明英宗土木堡之变为背景,以复辟为舞台,写尽了英雄们与时代间的相互激荡,造反与政变、背叛与殉道

将List对象转化为List<Map<String, String>>或者List<Novel>,其中prefix中的novelist必须小写,否则报错:

@Component
@ConfigurationProperties(prefix = "novellist")
public class NovelList {

    private List<Map<String, String>> list;

    public List<Map<String, String>> getList() {
        return list;
    }

    public void setList(List<Map<String, String>> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "NovelList{" +
                "list=" + list +
                ‘}‘;
    }
}

将yml中的内容放入,application.yml文件中正常,自定义novellist.yml文件中无法找到。使用@ConfigurationProperties注解,只能用于properties文件。

解决方式:可以通过PropertySourcePlaceholderConfigurer来加载yml文件,暴露yml文件到spring environment,如下:

@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
    PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
    YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
    yaml.setResources(new ClassPathResource("novellist.yml"));
    configurer.setProperties(yaml.getObject());
    return configurer;
}












































springboot如何读取配置文件中的属性

Springboot自定义属性注入SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。SpringBoot默认会从resources目录下加载a... 查看详情

自定义jar配置文件问题?

java开发的简单工具类jar包,没有spring等任何框架,在springboot中引入使用,怎样灵活读取springboot的配置文件?或者说在以下情况下怎样都能读取到spingboot的配置文件:1、application.properties;2、application.yml;3、springboot打成jar包启... 查看详情

springboot中普通工具类不能使用@value注入yml文件中的自定义参数的问题

在写一个工具类的时候,因为要用到yml中的自定义参数,使用@Value发现值不能正常注入,都显示为null;yml文件中的自定义格式调用工具类的时候不能new的方式要使用@Autowired的方式注入进来,new会导致部分环境未加载,尽可能舍弃... 查看详情

springboot中读取.yml文件

自定义配置文件application-dev.yml1spring:2dataresource:3druid:4driver-class-name:com.mysql.jdbc.Driver5url:jdbc:mysql://127.0.0.1:3306/appcloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone= 查看详情

无法从 Spring Boot 应用程序中的自定义 yml 文件加载配置

】无法从SpringBoot应用程序中的自定义yml文件加载配置【英文标题】:Cannotloadconfigfromcustomymlfileinspringbootapplication【发布时间】:2017-11-1608:30:55【问题描述】:我正在从我的SpringBoot服务中的application.yml加载自定义配置。我已经通... 查看详情

无法从 Java Spring Boot 项目中的 application.yml 文件中读取用户定义类的列表

】无法从JavaSpringBoot项目中的application.yml文件中读取用户定义类的列表【英文标题】:Unabletoreadlistofuserdefinedclassfromapplication.ymlfileinaJavaSpringBootproject【发布时间】:2021-02-1302:45:43【问题描述】:团队您好,我最近尝试从SpringBoot项... 查看详情

微服务之springboot自定义配置application.properties文件

配置的文件的格式springboot可以识别两种格式的配置文件,分别是yml和properties文件。我们可以将application.properties文件换成application.yml,这两个文件都可以被SpringBoot自动识别并加载,但是如果是自定义的配置文件,就最好还是使... 查看详情

springboot使用配置类映射yml配置文件信息

参考技术A使用configurationProperties注解并指明在配置文件中的前缀,然后用component注解注册进ioc容器。我这里定义的两个静态内部类,同时创建了各自的实例,比如这个Email静态内部类中有三个属性,那么配置文件就可以是mq.myrabbi... 查看详情

springboot入门1-----如何使用@value注解读取配置文件以及使用@configrationproperties注解

读取.yml文件属性值的方式  1)如何将配置文件中的属性值与字段匹配起来    @Value("${配置文件中属性的名}")   在application.yml文件中   server:port:9000#自定义的一个cupSize属性给一个值B将cu... 查看详情

springboot自定义配置文件数量是变化的,属性相同,只是值不一样,怎样绑定到实体类?

我的springboot项目有一个需求:1.创建自定义配置文件并设置属性和值2.自定义配置文件数量会根据生成环境增减,但文件中的属性不变,只是值不一样网上许多加载配置文件并绑定实体类的案例,都是需要@PropertySource指定具体的... 查看详情

springboot读取yml配置文件(代码片段)

springboot读取yml配置的几种方式前言:在springboot项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml文件,下面就介绍一下在springboot中读取yml配置的几种方式.yml文件规则yml文件的好处,天... 查看详情

配置文件+多环境配置+自定义属性

二、SpringBoot配置文件1、配置文件的路径及优先级<1>、配置文件的路径SpringBoot 使用了一个全局的配置文件application.properties,该配置文件可以放置在以下几个位置:根目录下项目根目录中config目录下项目的resources目录下... 查看详情

springboot配置文件注解

参考技术Aspringboot使用一个全局配置文件,配置文件的名字是固定的:application.properties或application.yml@ConfigurationProperties:将全局配置文件的属性值,映射到SpringBoot组件上@Value:从全局配置文件中读取属性,映射到组件上@PropertySour... 查看详情

eclipse编写springboot中的application.yml没有任何提示

...辑这个文件的时候,没有出现任何提示,插件STS已安装在springboot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值:1、引入依赖:?123456<!--支持@ConfigurationProperties注解--><dependency><groupId>org.springf... 查看详情

在springboot下读取自定义properties配置文件的方法

SpringBoot工程默认读取application.properties配置文件。如果需要自定义properties文件,如何读取呢?一、在resource中新建.properties文件在resource目录下新建一个config文件夹,然后新建一个.properties文件放在该文件夹下。如图remote.properties... 查看详情

springboot:配置文件的作用配置文件的格式properties配置文件yml配置文件(代码片段)

...统的调用密钥等信息配置日志的等级二、配置文件的格式SpringBoot配置文件主要分一下两种格式:.properties和.yml格式【properties和yml】properties可以和yml⼀起存在于⼀个项目当中,当properties和yml⼀起存在⼀个项目中时,... 查看详情

springboot之加载自定义配置文件

SpringBoot默认加载配置文件名为:application.properties和application.yml,如果需要使用自定义的配置文件,则通过@PropertySource注解指定。 JavaBean:packageorg.springboot.model;importlombok.Data;importorg.springframework.boot.context.pr 查看详情

spring系列---springboot与servlet的比较及spring读取配置文件的方式

SpringSpringBootVSServletSpring读取配置文件的方式yml和properties的区别SpringBootVSServletSpring读取配置文件的方式1@Value注解获取单个配置项如在yml中定义一个qq音乐的token;然后输出,如下:2针对对象的读取:@ConfigurationProperties在yml中写一... 查看详情