【发布时间】:2015-11-10 02:58:00
【问题描述】:
我有一个名为ApplicationProperties 的对象。该对象具有私有字段和公共 getter 方法。很琐碎。
if (properties == null) {
properties = new ApplicationProperties();
SettingsLoader settingsLoader = new SettingsLoader(properties);
settingsLoader.loadApplicationSettings();
}
return properties;
我也有 Spring Beans,其中一些依赖于 ApplicationProperties 来读取一些路径等。这在很长一段时间内都可以正常工作。 JDK 是Oracle JDK 1.6。但是最近当我部署在OpenJDK 1.7 ICEDTEA
我得到了一些NullPointerException,因为 spring bean 使用的应用程序属性具有空字段(未完全初始化)。
在 Open JDK 的情况下可能会进行并行类加载(不确定)。
我如何确保只有在 ApplicationProperties 完全准备好之后才实例化所有 spring bean(数量超过 200 个 - 并且许多通过注释)?
【问题讨论】:
标签: java spring spring-mvc java-7