Аннотация @Bean в Spring используется для объявления метода внутри класса с аннотацией @Configuration или @Component (и производных), который создаст, сконфигурирует и инициализирует новый объект, управляемый IoC-контейнером Spring.
Основные ценности:
- Явное объявление бинов: Позволяет явно указать, какой объект должен быть включен в контекст приложения Spring и как его получить.
- Настройка бинов: Дает возможность тонко настроить создание и конфигурацию объекта, выполняя необходимую логику перед его возвратом.
- Внешние зависимости: Удобно для интеграции внешних библиотек или компонентов, которые нельзя аннотировать напрямую, или когда их создание требует сложной логики.
- Условное создание: Позволяет создавать бины условно, например, на основе свойств окружения или наличия других бинов.
- Управление жизненным циклом: Позволяет определить методы инициализации (
@Bean(initMethod = "...")) и уничтожения (@Bean(destroyMethod = "...")) для бина.
Пример использования:
java