SpringBoot中如何解决读取properties文件读取问题

 更新时间:2022年07月08日 10:23:46   作者:黯ゞ淡  
这篇文章主要介绍了SpringBoot中如何解决读取properties文件读取问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

如何解决读取properties文件读取问题

问题描述

今天在springboot项目架构中,测试读取properties配置文件出现了两个问题:

  • 路径设置
  • 中文乱码

路径设置

解决思路是使用org.springframework.core.io下的ClassPathResource类获取流对象,然后使用properties进行读取

中文乱码

将从ClassPathResource中获取的流对象转换为BufferReader对象

public static void main(String[] args) throws IOException {
        Properties properties = new Properties();
        ClassPathResource classPathResource = new ClassPathResource("ProducerQuickStart.properties");
        InputStream inputStream = classPathResource.getInputStream();
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"utf-8");
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        properties.load(bufferedReader);
        Set<Object> keySets = properties.keySet();
        Iterator<Object> iterator = keySets.iterator();
        while (iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println("键:"+obj+"   值:"+properties.get(obj));
        }
    }

读取指定properties文件

设置配置属性类型

/**
 * 自定义配置属性类
 * @author ZH_FTP
 *
 */
@Component
//springboot 管理
@ConfigurationProperties(prefix = "validity")
//键值前缀
@PropertySource(value = {"classpath:/config/baseproperties.properties"}, encoding = "utf-8")
// 配置文件路径 解码方式
public class BaseProperties {
    private static final int INT_ZERO = 0;
    @Value("${validity.of.captcha}")
    private Integer validityOfCaptcha;//验证码有效时间
    public Integer getValidityOfCaptcha() {
        return validityOfCaptcha;
    }
    public void setValidityOfCaptcha(Integer validityOfCaptcha) {
        this.validityOfCaptcha = validityOfCaptcha;
    }
}

配置文件

在工程 /src/main/resources/config/baseproperties.properties 文件类型 配置信息 方便配置类读取

validity.of.captcha=120

读取配置文件就完成了,可以通过springboot 自动注入使用了

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

相关文章

  • Spring MVC的三种异常处理方式实例详解

    Spring MVC的三种异常处理方式实例详解

    在SpringMVC 中,不管是编译异常还是运行时异常,都可以最终由 SpringMVC提供的异常处理器进行统一处理,这样就避免了随时随地捕获处理的繁琐性,这篇文章主要介绍了Spring MVC的三种异常处理方式 ,需要的朋友可以参考下
    2024-01-01
  • Java正则表达式matcher.group()用法代码

    Java正则表达式matcher.group()用法代码

    这篇文章主要给大家介绍了关于Java正则表达式matcher.group()用法的相关资料,最近在做一个项目,需要使用matcher.group()方法匹配出需要的内容,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-08-08
  • 使用java数组 封装自己的数组操作示例

    使用java数组 封装自己的数组操作示例

    这篇文章主要介绍了使用java数组 封装自己的数组操作,结合实例形式分析了java数组索引、遍历等相关封装操作技巧与注意事项,需要的朋友可以参考下
    2020-03-03
  • SpringMVC使用@ExceptionHandler注解在Controller中处理异常

    SpringMVC使用@ExceptionHandler注解在Controller中处理异常

    这篇文章主要为大家介绍了SpringMVC使用@ExceptionHandler注解在Controller中处理异常示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringBoot整合Apollo配置中心快速使用详解

    SpringBoot整合Apollo配置中心快速使用详解

    本文主要介绍了SpringBoot整合Apollo配置中心快速使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 简单了解Java关键字throw和throws的区别

    简单了解Java关键字throw和throws的区别

    这篇文章主要介绍了简单了解Java关键字throw和throws的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能

    这篇文章主要为大家详细介绍了使用fileupload实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Java日常练习题,每天进步一点点(27)

    Java日常练习题,每天进步一点点(27)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • SpringBoot返回结果统一处理实例详解

    SpringBoot返回结果统一处理实例详解

    这篇文章主要为大家介绍了SpringBoot返回结果统一处理实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Mybatis 连接mysql数据库底层运行的原理分析

    Mybatis 连接mysql数据库底层运行的原理分析

    这篇文章主要介绍了Mybatis 连接mysql数据库底层运行的原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论