Аннотация @Bean используется в Spring Framework для явного объявления отдельного бина (компонента), который должен быть создан и управляться Spring IoC контейнером.
Основные причины ее использования:
- Интеграция сторонних библиотек: Позволяет легко интегрировать объекты, созданные сторонними библиотеками, которые не помечены аннотациями
@Component, @Service, @Repository и т.д.
- Конфигурация объектов: Дает полный контроль над процессом создания объекта, позволяя передавать ему зависимости и настраивать его свойства в Java-конфигурации.
- Несколько экземпляров одного класса: Позволяет создать несколько бинов одного и того же класса с разными конфигурациями.
- Условное создание бинов: В сочетании с
@Conditional можно создавать бины в зависимости от определенных условий.
- Четкое разделение конфигурации и бизнес-логики: Конфигурация приложения сосредоточена в классах, помеченных
@Configuration, а бизнес-логика в классах с @Component.
Пример использования в @Configuration классе:
java