maven项目,动态读取外部配置文件

简介: maven项目,动态读取外部配置文件

需求


先说下我的需求,首先,我们的服务是个maven的项目,springboot,spring啥的统统都没有用,然后也不打算引入各种配置文件的jar,但是想要在程序运行中,可以动态的修改一些配置,并且程序能识别到,程序里读到的内容也实时变动。


废话不多说了,直接上代码!


代码


首先看一下不能实施的版本啥样


初版,能读到jar包配置文件


  private static final ResourceBundle resourceBundle;
    static{
        resourceBundle = ResourceBundle.getBundle("preprocessor-application");
    }
    public static String getKey(String key){
        ObjectMapper objectMapper = new ObjectMapper();
        String result=resourceBundle.getString(key);
        return result;
}


第二版,可以读到不打到jar包里的配置文件


import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.Map;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
public class ResourceUtil {
    private static final Logger logger = LoggerFactory.getLogger(ResourceUtil.class);
    /**
     * 属性文件全名
     */
    private static final String PFILE ="/home/conf/application.properties";
    /**
     * 对应于属性文件的文件对象变量
     */
    private static File m_file = null;
    /**
     * 属性文件的最后修改日期
     */
    private static long m_lastModifiedTime = 0;
    private static ResourceBundle rb;
    private static BufferedInputStream inputStream;
    static {
        try {
            m_file = new File(PFILE);
            m_lastModifiedTime = m_file.lastModified();
            inputStream = new BufferedInputStream(new FileInputStream(PFILE));
            rb = new PropertyResourceBundle(inputStream);
            inputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static  String getKey(String key){
        long newTime = m_file.lastModified();
        if(newTime > m_lastModifiedTime){
            // Get rid of the old properties
            try {
                m_lastModifiedTime = m_file.lastModified();
                inputStream = new BufferedInputStream(new FileInputStream(PFILE));
                rb = new PropertyResourceBundle(inputStream);
                inputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        String result=rb.getString(key);
        return result;
    }
}
目录
相关文章
|
8天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
55 8
|
5天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
18 3
|
1月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
115 1
Maven——创建 Spring Boot项目
|
1月前
|
Java Shell 应用服务中间件
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
这篇文章介绍了如何在Mac系统下配置Java JDK、Maven和Tomcat的环境变量,包括配置文件的选择、解决环境变量在zsh shell中无效的问题、查看和设置系统环境变量的方法,以及JDK和Maven的下载、配置和测试步骤。
1327 1
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
|
1月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
24 1
如何使用 maven 创建一个 Spring Boot项目
|
1月前
|
Java Maven Android开发
eclipse创建maven项目
本文介绍了在Eclipse中创建Maven项目的步骤,包括打开Eclipse、选择Java项目、完成项目创建以及自动下载插件的过程。
83 2
eclipse创建maven项目
|
21天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
34 1
|
22天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
1月前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
314 1
|
1月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
160 0
idea+maven+tomcat+spring 创建一个jsp项目