Использование Java-конфигурации удобнее в случаях:
- Комплексная логика создания и связывания бинов, требующая программного подхода.
- Конфигурация зависит от внешних условий выполнения приложения.
- Предпочтение типобезопасности и рефакторинга, предоставляемых Java IDE.
- Интеграция с существующим Java-кодом, где логично определять конфигурацию рядом.
Использование XML-конфигурации удобнее в случаях:
- Простая конфигурация, где требуется только объявление бинов и их зависимостей.
- Разделение конфигурации от кода приложения, что может быть полезно для администрирования.
- Исторически сложившаяся практика в проекте.
В большинстве современных Spring-приложений чаще используется Java-конфигурация как более гибкий и типобезопасный подход. Однако, для простых случаев или обратной совместимости XML остается актуальным.