Как найти все инициализации переменных экземпляра в пакете Java? - PullRequest
2 голосов
/ 14 марта 2011

Я в процессе преобразования старого приложения в Spring. В рамках перехода мы конвертируем наши классы обслуживания из стиля «создаем новые экземпляры всякий раз, когда вам нужен», в стиль Springleton, поэтому мне нужен способ убедиться, что у них нет состояния.

Я чувствую себя комфортно в командной строке * nix, и у меня есть доступ к IntelliJ (мне кажется, что он подходит для Structural Search and Replace, если бы я мог понять, как его использовать), и я мог отследить вниз по установке Eclipse, если это поможет. Я просто хочу убедиться, что нашел все возможные проблемы.

ОБНОВЛЕНИЕ : Извините за путаницу. У меня нет проблем с поиском мест, где вызывался старый конструктор. То, что я ищу, является «пуленепробиваемым», зачем искать во всех 100+ классах обслуживания любое внутреннее состояние. Самым очевидным, о котором я мог подумать (и единственный, который я действительно нашел), являются случаи, когда мы используем мемоизацию в классах, поэтому у них есть переменные экземпляра, которые инициализируются внутри, а не через Spring. Это означает, что когда один и тот же Springleton используется для разных запросов, между ними могут возникать утечки данных. Спасибо.

Ответы [ 2 ]

1 голос
/ 14 марта 2011

В Eclipse вы можете просто щелкнуть правой кнопкой мыши по переменной / типу, и есть опция для Ссылки (или Объявления) -> (Рабочая область / Проект / Иерархия), которая может помочь вам аккуратно найти все ее экземпляры.

0 голосов
/ 14 марта 2011

Я бы предложил использовать встроенный в Eclipse инструмент рефакторинга, он приложит все усилия, чтобы соответствующим образом изменить каждый экземпляр, связанный с классом. Я бы пошел еще дальше и переименовал класс, который вы хотите изменить, чтобы в худшем случае полная компиляция не удалась, и вы легко могли решить любую из этих проблем.

...