ResourceBundle读取配置文件及路径问题

读取配置文件

今天工作过程中,看到获取配置文件里面的值研究了一下,算是自己的一点小进步,分享出来,希望帮到大家。
(ssm项目)

java.util.ResourceBundle,这个类的作用就是读取资源属性文件(properties)的。

使用方法:

private static ResourceBundle **BUNDLE** = java.util.ResourceBundle.getBundle("**platform**");

“platform”:是你的配置文件的名称
在这里插入图片描述

此时我们的BUNDLE 已经获取到了配置文件里面的东西,但是我们知道资源文件是ISO-8859-1编码,所以我们需要写一个公共方法,将此转化为UTF-8格式,

上一波代码,如下:

/**
     * 主要功能:获取配置文件参数
     * 注意事项:无
     *
     * @param name 参数名称
     * @return 参数名称对应值
     */
    public static String getConfigByName(String name) {
        String value = "";
        try {
            value = new String(BUNDLE.getString(name).getBytes("iso8859-1"), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return value;
    }

String name:就是我们配置文件中的key,此方法返回的就是对应的value值。

下面给大家看下我自己的调用方法:
int fundSupervisionId = Integer.parseInt(ResourceUtil.getConfigByName(“account.fundSupervision”));
在这里插入图片描述
我们的fundSupervisionId 得到的值就是20。

路径问题:

在工作过程中,我们的项目有开发环境,生产模境,测试环境,那么就会涉及到有多个.properties结尾的配置文件,也就是上文我项目中的platform.properties。通常这种情况下,我们会建立不同的包存放他们,
在这里插入图片描述
这个时候我们就要提到路径问题了,他是如何分辨清哪个是我们正在使用的配置文件。
通常我们的ssm项目是会在pom文件里面通过profile标签来定义我们要使用的配置文件,然后会帮我们编译到classes下面。

在这里插入图片描述 编译后:
在这里插入图片描述
此时只有一个platform.properties,就是我们指定的那个文件。这个时候我们不要忘了告诉这个文件的名字和路径,也就是我们的context:property-placeholder标签
在这里插入图片描述
最后给大家说下classpath*与classpath的区别:
(官方解释就不给大家粘了,说些我自己的理解)

classpath是指WEB-INF文件夹下的classes目录。
classpath:表示仅仅加载第一个classpath路径,而且是它的制定目录下,如果在它的直接目录下在建个包,放入相同名字的文件,classpath是找不到,需要classpath*。
classpath*:指定目录下的所有文件都会扫描。

结束啦,祝大家周末愉快。
(鬼鬼还在加班,幸运的是今天在家办公,开心。)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值