❓ В чём разница между @Component и @Bean?
Оба регистрируют бин в контейнере, но по-разному:
@Component (и специализации @Service, @Repository, @Controller) вешается на класс. Spring сам находит его при сканировании компонентов и создаёт бин. Подходит для своих классов, которые вы пишете сами.
@Bean вешается на метод внутри @Configuration-класса. Вы вручную создаёте объект и возвращаете его. Это нужно, когда:
→ бин из чужой библиотеки, куда нельзя добавить аннотацию;
→ требуется нетривиальная логика конструирования;
→ нужно условно собрать разные реализации.
🐸 Библиотека собеса по Java
#spring
Post #1379
1.11K
- 👍 4
- 🔥 3
- 👏 1