Являются ли @Bean и @Component аннотации одинаковыми, но для разных целей в Spring Framework?
Правильно ли я думаю, что @ Bean и аннотации @Component одинаковы, но сначала для классов, а другой для методов?
В обоих случаях контейнер просто создает соответствующий beans, правильно?
Ответ 1
Не совсем. Они принадлежат к разным понятиям.
@Component представляет собой аннотацию стереотипа. Класс, аннотированный этой аннотацией, будет автоматически обнаружен во время сканирования пути к классу. См. Также справочную документацию Spring главы 5.10. Кроме того, аннотация @Bean принадлежит функции конфигурации Java. В классе конфигурации эта аннотация используется для обозначения методов, которые определяют beans.