我想设置一些可由多个类访问的全局变量。这些全局变量的示例可能是一些键(字符串)之类的
我正在从数据库中获取这些变量,除非重新编译程序,否则变量可能不会改变
答案 0 :(得分:0)
最简单的方法是为这些属性定义类型为@Component
的{{1}}类。然后,使用从数据库中检索到的信息在应用程序的开头填充它。
然后,每当要使用这些属性时,都使用Map
的DI机制注入这些属性。
答案 1 :(得分:0)
您没有提供太多详细信息,所以答案也很通用。
基本上有两种方法:
您可以使用Java Properties
类。
public static final Properties defaultProperties = new Properties();
在程序开始时以defaultProperties
从数据库初始化defaultProperties.put("name", value)
。
通过defaultProperties.get("name")
访问您的媒体资源。
编写您自己的配置类。
class MyConfig
{
public final String SomeStringProperty;
public final int SomeIntProperty;
// Singleton
public final static MyConfig instance = new MyConfig();
private MyConfig()
{ // Init properties from database here.
}
}
您可能需要某种依赖性注入模式来初始化MyConfig
,例如建立数据库连接。
两种方法都相似。第二个提供了更多的类型安全性,并防止由于属性名称中的错字而意外访问不存在的属性。相反,可以通过添加新属性时无需更改配置代码的方式使第一个通用。当然,您仍然必须编写访问新属性的代码。
答案 2 :(得分:0)
您可以在application.properties文件中设置此属性。您可以在项目中的所有位置使用此属性。 例如:我正在将密钥用于受攻击的第三方。因此,我正在属性文件中使用密钥。