Всем привет.
@Component - создает бины классов
@Bean - можно применять только к методам, которые находятся в классе, который помечен аннотацией @Configuration.
Помогите понять разницу между @Component и @Bean. Окончательно запутался, зачем использовать @Bean, если @Component удовлетворяет всему вроде как
Спасибо!
adoonaai
16 уровень
Разница между @Component и @Bean
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Михаил
20 декабря 2022, 16:02
Вы можете аннотировать КЛАСС
Только МЕТОД в классе конфигурации spring помеченный аннотацией
0
Ksenia VolkovaJava Developer в DXCMaster
23 августа 2021, 17:23решение
С помощью метода, помеченного @Bean, ты можешь не просто вернуть экземпляр какого-то класса, но и сконфигурировать его так, как тебе надо.
+3
adoonaai
25 августа 2021, 14:22
Спасибо!
Подскажите, правильно ли я понимаю разницу между @Component, @Service и @Repository.
Все они определяют бины Spring, но используются для разной классификации.
@Component - является универсальным для любого Spring компонента
@Repository - аннотируем класс, который работает с БД
@Service - аннотируем класс, который содержит бизнес-логику и вызывает методы на уровне хранилища.
+1
Wladyslaw Java Developer Master
25 августа 2021, 17:36
Еще есть @Controller, в который тоже вложен @Component, который семантически контроллер из MVC.
Фактически, спринг со всеми этими аннотациями работает одинаково, примерно. На репозитории, вроде как, еще накручивают прокси трансляции нативных исключений хранилища.
Но в общем это все нужно для того чтобы твой коллега, или ты сам через месяц, когда читал этот код сразу понимал что ты имел ввиду когда его писал.
+1