Ответ
@Configuration — это аннотация Spring Framework, которая помечает класс как источник конфигурации бинов. Она заменяет XML-конфигурацию, позволяя определять бины в виде Java-кода.
Основные особенности:
- Классы с
@Configurationобрабатываются контейнером Spring для создания бинов. - Методы внутри такого класса, помеченные @Bean, создают и возвращают экземпляры бинов, которые управляются Spring-контейнером.
- Вызовы
@Bean-методов кэшируются, поэтому Spring гарантирует, что каждый бин будет создан только один раз (синглтон по умолчанию). - Поддерживает все возможности Spring, включая внедрение зависимостей через
@Autowired.
Пример конфигурации:
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
return new HikariDataSource(); // Создание бина источника данных
}
@Bean
public MyService myService(DataSource dataSource) {
// Spring автоматически внедрит бин DataSource
return new MyServiceImpl(dataSource);
}
}
Почему это важно: @Configuration — это основа современной Java-based конфигурации Spring, обеспечивающая типобезопасность, рефакторинг и более сложную логику инициализации по сравнению с XML.