我想知道是否可以使用java或使用spring messageSource从属性文件初始化接口中的常量,或者这样的事情是不可能的 请指教,谢谢。
答案 0 :(得分:3)
你可以:
public interface Foo {
String a = Properties.getProperty("foo"); // public static final by default
}
但是,这意味着Properties.getProperty(..)
必须是一个静态方法,它依赖于已经初始化的消息源(静态地再次)。根据您使用的项目和框架,这可能不是最佳选择。
答案 1 :(得分:2)
您可以通过包含final
成员的配置初始化bean。由于它是最终的,你可以在构造/初始化期间分配它,然后它是不可变的。
要使用Spring从属性文件进行配置,请查看PropertyPlaceholderConfigurer。这将允许您使用类路径,文件系统,远程服务等中的一个或多个属性文件初始化Spring bean。
答案 2 :(得分:1)
是的,这是可能的:
public static final CONSTANT = System.getProperty("myProperty");
答案 3 :(得分:0)
虽然可以使用一些静态帮助方法(如已经建议的那样),但强烈建议您不要这样做有两个原因:
答案 4 :(得分:-1)
通过阅读下面示例中的属性文件。
int property1;
String otherProperty;
public void loadProperties(File propFile) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(propFile));
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("Property1=")) {
property1 = Integer.parseInt(line.substring(10));
}
if (line.startsWith("OtherProperty=")) {
otherProperty = line.substring(14);
}
}
}