2009-09-24 33 views
2

我正在使用几个包,这些包通过使用配置属性(例如org.apache.ws.security.crypto)进行配置。通常一个配置文件就足够了,但是现在我需要重写一个或多个属性,只要它们被从特定对象实例调用的代码使用。 我远离java专家(但有太多的编程经验提及),所以任何具体的解决方案的指导将不胜感激。从包中覆盖Java属性

+2

欢迎来到全球变量的地狱...... – 2009-09-24 13:16:16

回答

1

Java属性存储是一个单一的全局名称 - 值映射。没有基于“谁”(对象,包等)引用属性的重写属性的一般支持。

0

答案将取决于您正在使用的特定软件包以及您希望更改哪个属性。属性文件可能在启动时被读取一次,并且从不再被访问。如果这就是代码的作用,那么在没有改变代码的情况下你就无能为力。其他软件包使您可以更改属性,或为您提供其他配置选项,以便您在不使用属性文件的情况下设置值。个别呼叫者必须确保根据需要更改属性。

您还需要关心线程问题(即使您正在将应用程序服务器抽象出来)。如果属性存储为静态变量,则更改为一个调用者可能会更改所有调用者。

无论采用哪种方式,我都会建议询问您关心的具体类别和属性,看看是否有人知道如何处理每个主叫方更改属性。