springboot加载一个properties文件转换为map方式

 更新时间:2022年07月08日 10:13:49   作者:changerzhuo  
这篇文章主要介绍了springboot加载一个properties文件转换为map方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

加载一个properties文件转换为map

springboot中比较常见的获取properties中的值,就是直接在字段上面添加@Value的属性. 

但有时候我们不确定key有多少,但是会有一定的规律(这个规律是根据业务来定的,如下),这时候我们就可以考虑将properties中的信息转换为一个map,然后根据key的规律操作响应的数据

1.创建一个properties文件

properties文件内容

# 配置格式严格按照如下设置; app1, app2为具体的模块名称
wechat.data.app1.appId=appid1
wechat.data.app1.secret=secret1
 
wechat.data.app2.appId=appid2
wechat.data.app2.secret=
 
wechat.data.app3.appId=appid3
wechat.data.app3.secret=secret3

2.在java中将该properties文件转换为map

package com.bz.wes.login.loginapi.config; 
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component; 
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author changez
 * @desc
 * @datetime 2019/9/25 17:06
 */
@Data
@Component
// 指定配置文件
@PropertySource("classpath:wechatInfo.properties")
@ConfigurationProperties(prefix = "wechat")
public class WechatPropertiesConfig {
 
    // prefix的值+data变量名为properties key的前一部分, 将key剩余的部分作为map的key, value作为map的value
    public Map<String, String> data = new HashMap();
}

properties配置文件出现乱码

如果使用properties作为配置文件

那么会出现字符乱码,因为idea默认字符集是utf-8,properties默认是使用ascll码,所以需要进行转换

settings中搜索file encoidings,进行如下操作

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java动态代理详解

    java动态代理详解

    本文章要用很土的语言描述Java动态代理,力求更易被理解。Java是JDK5中新加的机制,大家都知道Spring是用Java的动态代理实现的,那这个动态代理是什么东东呢,首先他肯定是个代理,我们先讲代理,把代理弄明白了,动态代理就好说了
    2014-02-02
  • spring BeanProcessor接口详解

    spring BeanProcessor接口详解

    这篇文章主要介绍了spring BeanProcessor接口的相关资料,帮助大家更好的理解和学习使用spring,感兴趣的朋友可以了解下
    2021-03-03
  • @Transaction,@Async在同一个类中注解失效的原因分析及解决

    @Transaction,@Async在同一个类中注解失效的原因分析及解决

    这篇文章主要介绍了@Transaction,@Async在同一个类中注解失效的原因分析及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java序列化和java反序列化示例

    java序列化和java反序列化示例

    在web项目开发的时候,经常用到序列化和反序列化用来传递大流量的数据,类只有实现Serializable借口才能被序列化,下来是java序列化和反序列化演示
    2014-01-01
  • springBoot 启动指定配置文件环境多种方案(最新推荐)

    springBoot 启动指定配置文件环境多种方案(最新推荐)

    springBoot 启动指定配置文件环境理论上是有多种方案的,一般都是结合我们的实际业务选择不同的方案,比如,有pom.xml文件指定、maven命令行指定、配置文件指定、启动jar包时指定等方案,今天我们一一分享一下,需要的朋友可以参考下
    2023-09-09
  • SpringBoot使用@ControllerAdvice全局异常处理

    SpringBoot使用@ControllerAdvice全局异常处理

    这篇文章主要介绍了SpringBoot使用@ControllerAdvice全局异常处理,异常处理是非常重要的一部分,它可以帮助我们捕获并处理应用程序中出现的异常情况,提高应用程序的健壮性和可靠性,需要的朋友可以参考下
    2023-07-07
  • java ZipFile如何将多级目录压缩

    java ZipFile如何将多级目录压缩

    这篇文章主要介绍了java ZipFile如何将多级目录压缩问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 详解 Java HashMap 实现原理

    详解 Java HashMap 实现原理

    这篇文章主要介绍了详解 Java HashMap 实现原理的相关资料,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java游戏俄罗斯方块的实现实例

    Java游戏俄罗斯方块的实现实例

    这篇文章主要介绍了Java游戏俄罗斯方块的实现实例的相关资料,这里实现简单的俄罗斯方块帮助大家学习理解基础知识,需要的朋友可以参考下
    2017-08-08
  • 解决idea报错 Connot resolve column 的问题

    解决idea报错 Connot resolve column 的问题

    这篇文章主要介绍了解决idea报错 Connot resolve column 的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论