博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不停服务,动态加载properties资源文件
阅读量:4482 次
发布时间:2019-06-08

本文共 1793 字,大约阅读时间需要 5 分钟。

系统运行过程中,我们用注解@Value("${****}")可以获取资源文件中的内

容,获取的内容会被存储在spring缓存中,因此如果我们修改了资源文件,要

想读取到修改后的内容,那就必须重启服务才能生效。那么如果想修改资源文

件中的内容,又不想重启服务,那么只能让服务动态加载资源文件,每一次读

取都是最新的内容,不去读缓存,解决方式如下:

利用工具读取资源文件

package com.***.**.utils;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.sinoway.cisp.controller.ApiController;/** * 获取properties文件内容工具类 */public class PropertyUtil {    private final static Logger logger = LoggerFactory.getLogger(ApiController.class);    public static String getProperty(String key) {        Properties props = new Properties();        InputStream in = null;        String property = null;        try {            // 第一种,通过类加载器进行获取properties文件流            // in = PropertyUtil.class.getClassLoader().getResourceAsStream("Constant.properties");            // 第二种,通过绝对路径进行获取properties文件流            String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();            in = new FileInputStream(path + "/Constant.properties");            props.load(in);            property = props.getProperty(key);        } catch (FileNotFoundException e) {            logger.error("Constant.properties文件未找到");        } catch (IOException e) {            logger.error("出现IOException");        } finally {            try {                if (null != in) {                    in.close();                }            } catch (IOException e) {                logger.error("文件流关闭出现异常");            }        }        logger.info("加载资源文件完成...........");        logger.info("文件内容为:" + props);        return property;    }}

通过工具获取资源文件中的内容,是每次都会重新读取的,以此来达到动态加载资源文件的目的

转载于:https://www.cnblogs.com/java-spring/p/9621700.html

你可能感兴趣的文章
vim
查看>>
数组的键/值操作函数
查看>>
Android单点触控与多点触控切换的问题解决方案
查看>>
JS常用函数与方法
查看>>
十、Shell基础
查看>>
py16 面向对象深入
查看>>
CentOS 7 安装 Gitlab
查看>>
JavaScript-03-常见函数
查看>>
ajax 设置Access-Control-Allow-Origin实现跨域访问
查看>>
去掉ExpandableListView的箭头图标
查看>>
[LeetCode]Binary Tree Level Order Traversal II
查看>>
跨页面传值自动刷新 操作文本与文件夹
查看>>
最完美的毁尸灭迹:皮箱连环弃尸案始末
查看>>
002
查看>>
WCF服务“*”有零个应用程序(非基础结构)终结点。这可能是因为未找到应用程序的配置文件,或者在配置文件中未找到与服务名称匹配的服务元素,或者服务元素中未定义终结点。...
查看>>
cocos2d 读书随笔《cocos2d-x游戏开发技术精讲》
查看>>
Asterisk 代码架构概述
查看>>
中兴电信光纤猫F450获取管理员密码方法
查看>>
申请TexturePacker 或 PhysicsEditor free licenses
查看>>
kafka启动报错&问题解决
查看>>