我正在写一项服务,将一堆设置导出到一个文件中。自然,我想重用已经存在的标签。我们正在处理一个Spring + Wicket-Setup。
标签在属性文件中定义。

如何访问属性?

我尝试使用StringResourceModels,但是MissingResourceException一直被抛出。我尝试像手动加载属性

InputStream iStream;
iStream = MySettingsPage.class.getClassLoader().getResourceAsStream("MySettingsPage.properties");
if (iStream != null) {
  prop.load(iStream);
}


但是InputStreamnull,因此不会加载任何属性。

我还没有找到有关从Spring-Service访问Wicket属性的任何信息。

即使我知道不应将Spring服务与Wicket类纠缠在一起,但如果没有其他方法,我还是愿意接受后果。此外,我想避免手动加载属性,因为它们已经被缓存了。

最佳答案

iStream = MySettingsPage.class.getClassLoader().getResourceAsStream("MySettingsPage.properties");


将尝试从类路径的根目录加载文件。我觉得该文件位于MySettingsPage.class旁边,即它位于com.example.myproduct这样的包中。在这种情况下,请使用:

iStream = MySettingsPage.class.getResourceAsStream("MySettingsPage.properties");

10-08 14:06