java - 将全局配置变量封装为静态?

标签 java jakarta-ee static

我有几个全局变量,基本上不会改变。 有时(每隔几个月)我想改变它们。

它们保存在数据库中。

问题是:如果我更改静态变量,其他服务仍然使用旧值。 我做错了什么?

class Config {
    public static Default DEFAULTS = new Default();
    //several other static defaults 

    public static in DIGIT = DEFAULTS.getDigit();
}


class Default() {
    private int digit = 0;
    //get+set
}

class Service() {
    updateDefaults() {
        Config.DEFAULTS.setDigit(2);
        dao.update(Config.DEFAULTS);
    }
}

问题:使用 Config.DIGIT; 的其他服务仍然使用旧的默认值 digit = 0

最佳答案

问题是您正在更新 Default 的 DEFAULTS 实例中的数字值。但是 Config.DIGITS 的值已设置且未重置,即 DIGITS 的分配不会更新,因为您更改了 DEFAULTS.digit 的值。

此外,我假设这段代码中存在一些拼写错误,因为 Config.DEFAULTS 在这里是私有(private)的,无法直接更新。

关于java - 将全局配置变量封装为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13587342/

相关文章:

java - 是否可以在java中的静态类中创建内部类的对象?

java - ThreadPoolExecutor 政策

eclipse - 更改 Eclipse 项目的默认服务器

java.lang.ClassNotFoundException : net. sourceforge.jtds.jdbc.Driver 问题

http - 用于实现代理服务器 : monitoring , 跟踪、保存和(重新加载)Http 流量的 J2EE 解决方案

c++ - 在 darwin 上静态 boost 包括 libstdc++?

c++ - 仅初始化部分功能一次

java - 运行 javafx 程序时出现 InvocationTargetException

java - 由于来自单元测试的日志文件,Jenkins Maven 发布失败

java - 使用 JButton 时如何重用 actionListener 的按键方法?