В настоящее время я выполняю рефакторинг серверной части существующего проекта.
Теперь мы используем guice для привязки определенных модулей и их объектов.
За последние 2 недели у нас часто возникает проблема, которая выглядит так, как будто эта путаница смешивает некоторые из использованных экземпляров объекта.
Проблема в том, что класс отвечает за создание строки, которая будет вставлена в базу данных. Этот класс используется из службы rpc, которую можно вызывать довольно быстро подряд. Таким образом, происходит то, что служба 1 RPC вызывает этот класс, а служба 2 RPC тем временем также вызывает этот класс и изменяет глобальный параметр, используемый для построения строк. Класс построителя довольно глуп, поскольку он берет параметр из метода, устанавливает некоторые части параметра в качестве глобальных переменных и обрабатывает строку.
Я думаю, что главной проблемой являются глобальные переменные, но я не знаю, как я мог бы избавиться от них элегантным способом. Они используются во всех других методах, которые вызываются из метода init (например, startMethod () вызывает buildStringOne (), buildStringTwo (), и они обращаются к обеим глобальным переменным, которые установлены в startMethod ()).
Есть ли лучший способ, как я мог бы связать этот объект, или мне нужно удалить глобальные переменные и предоставить их в качестве параметра в других методах?
Спасибо за вашу помощь.