【SpringBoot】四十七、SpringBoot中如何静态加载配置文件

前言

我们知道在 SpringBoot 中有默认的配置文件 application.yml 或 application.properties,我们可以通过

@ConfigurationProperties(prefix = "test")

@Value("${test}")

等方式获取到配置内容,那有的时候我们需要通过静态的方式读取配置文件的内容,这种方式就不能实现了

1、创建配置文件

配置文件
我们将配置文件放在根目录下,里面配置的是微信公众平台的一些信息

2、读取配置文件

package com.asurplus.weixin.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

/**
 * 加载配置文件
 *
 */
public class WxConfigProperties {

    private static Logger log = LoggerFactory.getLogger(WxConfigProperties.class);

    /**
     * 系统配置文件在程序运行期间的路径
     */
    private static final String configFilePath = WxConfigProperties.class.getResource("/").getPath().replaceAll("%20", " ").concat("wx-conf.properties");

    private static Properties properties = new Properties();

    static {
        loadParam();
    }

    /**
     * 从配置文件中加载参数
     */
    private static void loadParam() {
        try {
            File file = new File(configFilePath);
            InputStream in = new FileInputStream(file);
            // 加载配置文件
            properties.load(in);
        } catch (Exception e) {
            log.error("配置文件加载失败:{}", e.getMessage());
        }
    }

    /**
     * 读取配置文件
     *
     */
    public static String getKeyToValue(String key) {
        return properties.getProperty(key);
    }
}

这样,我们在程序运行的时候,加载了这个配置文件,我们就可以通过 key 获取到对应的配置内容

3、获取配置文件内容

package com.asurplus.weixin.util;

import org.apache.commons.codec.binary.Base64;

import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 读取配置文件内容
 *
 */
public class WxConfiUtil {

    /**
     * 项目的访问路径 正式:
     */
    public static String basePath = WxConfigProperties.getKeyToValue("basePath");

    /**
     * 公众号ID 正式:
     */
    public static final String appId = WxConfigProperties.getKeyToValue("appId");

    /**
     * 公众号密钥 正式:
     */
    public static final String appSecret = WxConfigProperties.getKeyToValue("appSecret");

}

通过 getKeyToValue() 方法就可以获取到具体的配置信息了

如您在阅读中发现不足,欢迎留言!!!

Asurplus、 CSDN认证博客专家 博客专家 全栈开发
书山有路勤为径,学海无涯苦作舟!
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页