2018-04-27 读配置文件到静态变量中,加载properties到static变量field

项目的配置文件要写到jar档外面,提供给运维人员更改,基于这个需求,就会有很多的常量需要从外部文件读取进来

JAVA最常见的就是properties文件,提供key,value的方式,

本来想用Spring的@Value,但发现注入不进来

可能是我搜索的关键词不对,搜了半天竟然没有解决方法

尝试搜索的关键字

  • 读配置文件到静态变量中
  • 静态变量读取 properties 文件
  • Read property value from properties file in static field of class using Java based spring configuration.

网络上面提供的方法还蛮多的

  Object.class.getClassLoader().getResourceAsStream("config.properties");

读classpath中的配置档可以,但读本地文件系统就没有办法 file:/var/xxxx这样读不到

最终可以用的方法也比较简单

@Data
@Log4j2
public class Constants {


    public static Properties PROPERTIES;

    static {

        String pathString = "/var/config.properties";
        File file = new File(pathString);
        PROPERTIES = new Properties();
        try {
            FileInputStream fis = new FileInputStream(file);
            PROPERTIES.load(fis);
            log.debug("PROPERTIES : " + PROPERTIES);
            PARAM2= PROPERTIES.getProperty("albert.chen.param2").trim();
          
        } catch (IOException e) {
            log.error("Read Configuration File error" + e);
        }
    }

    private VendorPropertiesConstants() {
    }

    public static String PARAM1= PROPERTIES.getProperty("albert.chen.param1").trim().toUpperCase();
    public static String PARAM2;


}

config.properties

albert.chen.param1=123
albert.chen.param2=test

Application.java

import lombok.extern.log4j.Log4j2;

/**
 * @author albert on 4/26/2018
 */
@Log4j2
public class Application {

    public static void main(String[] args) {


        System.out.println(Constants .PARAM1);
        System.out.println(Constants .PARAM2);


    }

}

参考文档: https://blog.csdn.net/chengly0129/article/details/49493297 https://www.againfly.com/flytag_292.html https://www.jianshu.com/p/127310cb90e0 http://www.mkyong.com/java/java-getresourceasstream-in-static-method/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿DD

Spring Boot 2.0 新特性(一):配置绑定 2.0 全解析

在Spring Boot 2.0中推出了Relaxed Binding 2.0,对原有的属性绑定功能做了非常多的改进以帮助我们更容易的在Spring应用中加载和...

3944
来自专栏阿杜的世界

Restful: Spring Boot with Mongodb

继续之前的dailyReport项目,今天的任务是选择mongogdb作为持久化存储。

932
来自专栏Danny的专栏

【SSH快速进阶】——Spring属性注入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1042
来自专栏学海无涯

Java Web之SpringMVC 进行参数绑定

学习方法 当需要学习一个新的MVC框架需要从以下方面入手: 1、环境搭建(能输出Hello Word) 2、如何传递参数到Controller,Contr...

35211
来自专栏xdecode

Spring MVC注解式开发

MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @C...

2978
来自专栏你不就像风一样

[转]Spring基础知识汇总 Java开发必看

Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通...

1473
来自专栏java工会

Java 必看的 Spring 知识汇总!有比这更全的算我输!

2212
来自专栏微服务生态

Flume-NG源码分析-整体结构及配置载入分析

终于开始Flume源码的分析研究工作了,我也是边学边和大家分享,内容上难免有不足之处,望大家见谅。

1434
来自专栏Java 技术分享

SpringMVC(一)

1232
来自专栏Java 技术分享

两篇 Spring 总结(一)

1413

扫码关注云+社区

领取腾讯云代金券