@Component
и @Bean
выполняют две совершенно разные вещи, и их не следует путать.
@Component
(и @Service
и @Repository
) используются для автоматического обнаружения и автоматическое конфигурирование bean-компонентов, использующее сканирование классов. Существует неявное взаимно однозначное сопоставление между аннотированным классом и компонентом (т. Е. Одним компонентом для каждого класса). [7]
@Bean
используется для явно , объявляет один бит, вместо того, чтобы позволить Spring делать это автоматически, как указано выше. явно ограничено этим подходом, поскольку это чисто декларативный. , Он отделяет декларацию компонента от определения класса и позволяет вам создавать и настраивать компоненты точно так, как вы выберете.
Чтобы ответить на ваш вопрос ...
было возможно повторно использовать аннотацию
blockquote>@Component
вместо введения аннотации@Bean
?Конечно, возможно; но они решили не делать этого, так как они совершенно разные. Весна уже довольно запутанная, не загрязняя воды дальше.