Ответ
XML-конфигурация в Spring сегодня в основном актуальна для поддержки legacy-кода, но есть несколько сценариев, где она может быть удобна:
1. Внешняя конфигурация без перекомпиляции:
XML-файлы можно изменять и перезагружать во время выполнения (например, с помощью ClassPathXmlApplicationContext), что полезно для параметров среды, которые часто меняются.
2. Чёткое разделение кода и конфигурации: Конфигурация полностью вынесена из Java-кода, что может быть удобно для DevOps-инженеров.
3. Поддержка унаследованных проектов: Многие старые enterprise-приложения полностью сконфигурированы через XML.
4. Конфигурация, генерируемая инструментами: Некоторые инструменты (например, для интеграции) могут автоматически генерировать Spring XML.
Пример объявления бинов в XML:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
destroy-method="close">
<property name="jdbcUrl" value="${db.url}"/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
</beans>
Важно: Для новых проектов стандартом является Java-based конфигурация (@Configuration), так как она типобезопасна, обеспечивает лучшую поддержку рефакторинга и позволяет использовать всю мощь Java.