Советы или инструменты для отладки приложений Spring?

Я пытаюсь впервые использовать Spring в приложении. Общая проблема, возникающая неоднократно, заключается в том, как отлаживать Spring. Структура очень сложная, поэтому традиционная отладка кода кажется бесплодной. У меня нет реальной идеи, как устранить неполадки, не включив журналы уровня отладки (которых не хватает) и сканирование.

Существуют ли общие советы или инструменты для поддержки отладки Spring?

Ответы

Ответ 1

Если вы используете Eclipse, перейдите в IDE (доступный с помощью Eclipse Marketplace в меню Справка Eclipse). Это обеспечит визуализацию кода, визуализацию bean и горячую ссылку на ваши файлы конфигурации.

Ответ 2

Я не думаю, что Spring отладка должна отличаться от любого другого сценария отладки.

Какие аспекты Spring вы используете? Если вы правильно используете инъекцию зависимостей, я бы не ожидал никаких проблем.

Однако, если вы динамически разрешаете beans через их имя (во время выполнения, используя ApplicationContext.getBean()), я вижу, что это вызовет проблемы с ожиданием потока управления и т.д., и предложит вам вернуться к IoC.

EDIT: Очень полезно иметь исходный код Spring. Он хорошо составлен и вполне читабельен и, следовательно, может быть использован при отладке.

Ответ 3

Обычно я использую java-отладчик в eclipse - он отлично работает на большинстве классов. Некоторые классы завершаются при компиляции/времени выполнения с помощью изменений в байт-коде - для них вы, как правило, не можете помещать точки останова в методы, однако вы можете установить точку останова при вводе метода.

Если у вас очень конкретная ситуация, вам, возможно, придется немного поразмыслить в своем вопросе.

В целом я тоже хорошо разбираюсь в уровнях ведения журнала - как вы думаете, что с ними не так?

Ответ 4

По состоянию на 09/2011 (версия: 2.6.1.RELEASE, Build Id: 201105041000) реальная досада заключается в том, что отладчик не останавливается внутри закрытий, поэтому вам нужно помнить о том, чтобы поставить точку останова внутри вы хотите изучить; это прекрасно, поскольку "почти" идет в другой класс, который много времени не имеет значения, но когда это происходит, вы должны это помнить.