Springboot设计之properties配置文件properties、yml读取bean、map、list、map<String, Bean>属性

文章介绍了在Springboot中如何自定义配置文件,特别是当配置内容涉及Bean、List、Map及其嵌套时的处理方式。通过@configurationProperties注解,结合YAML和properties格式的配置文件,展示了如何加载和使用这些复杂类型的配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Springboot中自定义配置文件比较简单,主要是介绍Bean中类型为 List、Map、map<String, Bean>时候读取的方式,示例如下:

JAVA Properties

@Data
@Component
@ConfigurationProperties(prefix = "msg.sms")
public class SmsProperties {

    private String key;
    
    private Info info;

    private Map<String, Template> templateMap;

    private List<Template> templateList;

    @Data
    public static class Template{

        private String code;

        private String params;

        private String desc;
    }

    @Data
    public static class Info{

        private String username;

        private String name;
    }

配置方式 之 application-*.yml

  msg:
    sms:
# 配置 普通
      key: 1231255
# 配置 Bean
      info:
        name: test
        username: test
# 配置 Map
      template-map:
        key1:
          code: 1
          params: 1
          desc: 1
        key2:
          code: 2
          params: 2
          desc: 2
# 配置 list
      template-list:
        - code: code1
          params: params1
          desc: desc1
        - code: code2
          params: params2
          desc: desc2

配置方式 之 application-*.properties

# 普通配置
msg.sms.key=1231255

#  bean 配置
msg.sms.info.name: test
msg.sms.info.username: test

# Map<String, bean> 配置
msg.sms.template-list[0].code= 1
msg.sms.template-list[0].params= 1
msg.sms.template-list[0].desc= 1
msg.sms.template-list[1].code= 1
msg.sms.template-list[1].params= 1
msg.sms.template-list[1].desc= 1

# Map<String, bean> 配置
msg.sms.template-map.key1.code= code1
msg.sms.template-map.key1.params= params1
msg.sms.template-map.key1.desc= desc1
msg.sms.template-map.key2.code= code1
msg.sms.template-map.key2.params= params1
msg.sms.template-map.key2.desc= desc1

效果

debug中,已经可以看到配置项已经加载进来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值