【发布时间】:2011-09-29 09:41:07
【问题描述】:
我目前正在重构现有项目的服务器端。
我们现在使用 guice 来绑定特定的模块及其对象。
在过去 2 周中,我们经常遇到一个问题,看起来好像 guice 混淆了一些已使用的对象实例。
问题是一个类负责构建将插入数据库的字符串。此类从 rpc 服务中使用,该服务可以连续快速调用。所以发生的事情是 RPC 服务 1 调用这个类,同时 RPC 服务 2 也在调用这个类并更改用于字符串构建的全局参数。 builder 类有点愚蠢,因为它从方法中获取参数,将参数的某些部分设置为全局变量并处理字符串。
我认为主要问题是全局变量,但我不知道如何以优雅的方式摆脱它们。它们用于从 init 方法调用的所有其他方法(例如 startMethod() 调用 buildStringOne()、buildStringTwo() 以及访问在 startMethod() 中设置的两个全局变量)。
有没有更好的方法可以绑定这个对象,还是我需要删除全局变量并将它们作为其他方法的参数提供?
感谢您的帮助。
【问题讨论】: