当前位置: 首页 > news >正文

SpringBoot 启动时查询数据库数据,并赋值给全局变量

创建一个组件

AreaData

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;/*** 初始化全局数据** @Package_Name * @Author * @TIME* @Version*/
@Component
public class AreaData implements CommandLineRunner {private static final Logger logger = LoggerFactory.getLogger(AreaData.class);@Autowiredprivate Service service;public static Map<String, String> map;@Overridepublic void run(String... args) {logger.info("***************开始加载数据***************");List<String> strings = service.query();map = strings.stream().collect(Collectors.toMap(e -> {String[] s = e.split("_");return s[s.length - 1];}, s -> s, (oldValue, newValue) -> oldValue));logger.info("***************结束加载数据***************");}
}

代码示意

 map = strings.stream().collect(Collectors.toMap(e -> {
            String[] s = e.split("_");
            return s[s.length - 1];
        }, s -> s, (oldValue, newValue) -> oldValue));

        该段为 List<String> 转 Map<String, String>

        toMap 中第三个参数为 出现重复 key 的处理方式:保留旧的

        出现重复键会抛异常(非法状态异常):IllegalStateException

重点

@Component 注解不能忘

                                                                Leslie Lee 随笔

http://www.lryc.cn/news/345269.html

相关文章:

  • 【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法
  • minio上传文件失败如何解决
  • Java自动化测试框架--TestNG详解
  • 【分布式 | 第五篇】何为分布式?分布式锁?和微服务关系?
  • JavaScript百炼成仙自学笔记——13
  • 【skill】小米10让app永驻后台
  • 《架构风清扬-Java面试系列第29讲》聊聊DelayQueue的使用场景
  • 说说SpringBoot自动配置原理
  • bash: docker-compose: 未找到命令
  • linux 权限和权限的设置
  • 基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。
  • springboot3项目练习详细步骤(第一部分:用户业务模块)
  • 推荐算法顶会论文博客笔记合集
  • DRM/RESP无法连接linux上redis的原因
  • vim怎么选中多行后在头部插入#(随手记)
  • Objective-C的对象复制与拷贝选项
  • HTML5 中的离线缓存机制,即应用缓存(Application Cache 或 AppCache)已被废弃并正在被逐步移除
  • vue3+ant design实现表格数据导出Excel
  • VBA_NZ系列工具NZ06:VBA创建PDF文件说明
  • Git === Git概述 Git安装
  • Linux diff命令(比较两个文件或目录的内容差异)
  • 从传统到现代:水表的远程抄表革命
  • 视频怎么打水印?6个软件教你快速进行视频水印制作
  • 面试 Java 基础八股文十问十答第二十八期
  • Excel-VBA报错01-解决方法
  • php利用阿里云短信SDK实现短信发送功能
  • 承装(修、试)电力工程施工许可证四级资质可以承接多大的项目?
  • 影像图层调整图像显示效果的色彩参数汇总
  • EasyHPC - PyTorch入门教程【笔记】
  • Node.js里面 Path 模块的介绍和使用