Этот вопрос проверяет понимание современного подхода к конфигурации Spring-приложений с помощью аннотаций вместо XML.
Конфигурация с аннотациями позволяет настроить Spring-приложение прямо в Java-коде, используя специальные пометки. Основные аннотации: @Configuration для классов-конфигураций, @Bean для создания бинов и @ComponentScan для автоматического поиска компонентов. Этот способ более удобен и безопасен, чем старый XML-подход.
Аннотационная конфигурация в Spring — это современная альтернатива XML, которая позволяет описывать бины и их зависимости непосредственно в Java-коде. Это делает конфигурацию более типобезопасной и легкой для понимания.
Основные аннотации:
@Configuration: Помечает класс как источник определения бинов. Внутри такого класса методы, помеченные @Bean, создают экземпляры бинов, которые управляются Spring-контейнером.
@ComponentScan: Указывает Spring, в каких пакетах искать классы, помеченные аннотациями как @Component, @Service, @Repository, чтобы автоматически зарегистрировать их как бины.
@PropertySource: Используется для загрузки свойств из внешних файлов (например, application.properties).
Пример конфигурационного класса:
@Configuration
@ComponentScan("com.example.myapp")
@PropertySource("classpath:application.properties")
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}Как это работает:
Spring сканирует указанный пакет (com.example.myapp) и все его подпакеты. Он находит классы, помеченные стереотипными аннотациями (@Component, @Service и т.д.), и автоматически создает из них бины. Дополнительные бины, которые требуют особой логики создания (как MyService в примере), определяются в методах с @Bean.
Вывод:
Аннотационную конфигурацию стоит использовать для большинства новых проектов, так как она проще, современнее и интегрируется с возможностями языка Java.