SpringBoot yml配置文件注入List和Map
侧边栏壁纸
  • 累计撰写 173 篇文章
  • 累计收到 1,057 条评论

SpringBoot yml配置文件注入List和Map

萧瑟
2021-05-23 / 0 评论 / 451 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年05月23日,已超过1040天没有更新,若内容或图片失效,请留言反馈。

哈喽,最近工作比较忙,网站重建后,动态更新也比较少,刚好最近遇到一个问题就是在配置文件中存入 ListMap ,同时将配置文件存放 nacos 动态获取,那我以Boot项目简单说明一下。

添加配置信息

List需要注意: - 张三 这里有一个空格;Map需要注意: 1: 小王先生 这里也有一个空格。

myprops:
  showpagemaps:
    1: 张三
    2: 李四
    3: 王五
  list:
    - 小王先生
    - 青山小站
    - 百度百科
    - 百度云
    - 腾讯云
    - 良心云
    - 套路云

添加依赖包

Boot项目已经存在此依赖,所以可以忽略。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

创建配置类

此处已经引入lombok,所以无需写get和set方法。

package com.yanqingshan.springboot.uitls;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 配置文件
 *
 * @author yanqs
 * @version 1.0
 * @Description
 * @date 2021/5/23 0:54
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "myprops")
public class MypropsConfig {
    /**
     * List 数组
     */
    private List<String> list;
    /**
     * Map
     */
    private Map<Integer, String> showpagemaps;
}

调用输出

新建一个Controller ,可参考以下代码,此处添加了hutool工具包,此包功能比较强大,适合快速开发,有兴趣的童鞋可以研究一下。
此处还有一个@Resource注解,可参考本站上一篇文章。

package com.yanqingshan.springboot.controller;

import cn.hutool.core.lang.Console;
import com.yanqingshan.springboot.uitls.MypropsConfig;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author yanqs
 * @version 1.0
 * @Description
 * @date 2021/5/23 0:57
 */
@RestController
@RequestMapping("/test")
public class TestController {

    @Resource
    private MypropsConfig mypropsConfig;

    /**
     * 读取数据数据
     *
     * @return
     */
    @GetMapping("/selected")
    public List<String> selected() {
        Console.log(mypropsConfig.getList());
        return mypropsConfig.getList();
    }

    /**
     * 读取Map
     *
     * @return
     */
    @GetMapping("/showPageMap")
    public Map<Integer, String> showPageMap() {
        Map<Integer, String> showPageMaps = mypropsConfig.getShowpagemaps();
        for (Integer key : showPageMaps.keySet()) {
            Console.log("key:" + key + ",value:" + showPageMaps.get(key));
        }
        return showPageMaps;
    }
}

输出效果

SpringBoot yml配置文件注入List和Map

源码示例

评论 (0)

取消