700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java properties读取 封装_java properties 文件读取踩坑记

java properties读取 封装_java properties 文件读取踩坑记

时间:2022-12-05 17:19:22

相关推荐

java properties读取 封装_java properties 文件读取踩坑记

当然,读取不到配置文件,是线上和开发环境结果不同这种情况。开发线下环境,明明读取正常,一放到线上,杯具了,没读取到。

然后呢?当然是看看线上这个目录下有没有这个文件,ftp上去一看,文件有啊,目录也对,文件内容也都有。排除文件不存在或者配置项不存在的情况。

再想想,大多数情况下读取配置,都是用的classloader定位class文件位置,再定位properties文件的方式,这种方式呢,本身就容易出现线下线上不一致的情况,获取方式的代码写法也有很多种,确实有些获取方式的代码容易正好踩坑,那么去看看获取的代码吧。

import org.springframework.core.io.ClassPathResource;

import org.springframework.core.io.support.PropertiesLoaderUtils;

propertie=PropertiesLoaderUtils.loadProperties(new ClassPathResource("common.properties"));

哎呦我去,调用的spring的工具类啊,那么我还怀疑个P啊,基本可以放弃怀疑了。排除代码写法问题。

那没办法了,把propertie的路径打印出来看看吧,打印了一下,果然是对的。

那再把propertie内容的key打印出来看看吧,打印了一下,O.O!!! 什么鬼,撂桌子啊!为嘛要读取的key前面有3个问号(???)。

再观察了一下,要读取的配置项,位于propertie文件的第一行。

好吧,第一行不写有意义的配置项总行了吧。在第一行写入如下字符:

#.....随便乱写了一堆

总之意思呢,就是前面有 # ,注释行的意思,propertie读取会忽略的。

下来反思一下,豁然开朗,恩,应该是propertie文件本身的编码问题,我们开发环境把propertie文件编码设置的是UTF-8,但服务器上不知道什么原因,应该是用的 ISO8859-1 读取的propertie配置文件,然后,导致第一行会有3个问号一样的乱码字符。

不想改代码,有效配置项目中也确实没有中文,那么,也就懒惰处理法啦,直接第一行弄一个注释行。完事,收工。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。