我有一个场景我想得到你的意见。我们几乎已经确定了我们要采取的路线,但我很好奇关于解决方案的其他一些意见。
我们的程序是一个位于两个较大系统之间的转换器服务:系统A制作副本并将其粘贴到WebSphere队列上,JMS通过调用Converter类中的onMessage方法来获取它并启动我们的服务,我们做了一些处理,将其返回给JMS,JMS将其粘贴到另一个队列B到系统B.
我们正在寻找捕获输入消息的最佳方法,一旦它到达我们的onMessage方法并在整个程序的整个过程中保留它。这样,如果我们遇到错误,我们可以在堆栈跟踪日志中打印导致错误的消息,以帮助进行故障排除。
在我的研究中,我遇到了四种获得持久性的方法:
1)保存到临时文件。
2)全局变量/ Singleton。
3)包装类。
4)Spring的依赖注入方法。
我们倾向于使用全局变量(不祥的音乐)。我们使用以下已知事实来推动我们的决定:
我知道一般意见认为全局变量非常糟糕,但我一直认为全局变量本质上并不坏,它们只是以一种糟糕的方式易于使用。我们认为这是一个例子,在考虑全局变量的危险性的情况下,它们是正确的选择。你的想法?
应该注意的是,我们无法在我们的环境中添加任何库,因此我们无法使用Java和Spring做任何事情。