@Beanと@Componentは使い方が違うので、ソースコードで見ると、理解が深まるかもしれません。
**@Beanはメソッドレベルのアノテーションで、(主に)@Configurationの付いたクラスで使用します。**これは、Java Configの設定として使用でき、Spring XMLの代わりとして使えます。Spring公式ドキュメント
コードとしてよく使うのは、Spring Securityで使うパスワードエンコードです。
java
1@Configuration
2@EnableWebSecurity
3public class SecurityConfig extends WebSecurityConfigurerAdapter {
4
5 @Bean
6 public BCryptPasswordEncoder passwordEncoder() {
7 return new BCryptPasswordEncoder();
8 }
@Componentは、ステレオタイプのアノテーションです。@Repository、@Service、@Controllerに当てはまらないような、一般的なコンポーネントクラスに@Componentを付けます。Spring公式ドキュメント
例えば、Spring Bootの起動後に何か処理をさせたいとしたら、@ComponentとApplicationRunnerを組み合わせると、初期処理を実現できます。
java
1@Component
2public class DataLoader implements ApplicationRunner {
3
4 @Override
5 public void run(ApplicationArguments args) throws Exception {
6
※上記の処理は、RepositoryやService、Controllerではないため、@componentでコンポーネントスキャンの対象としています
回答としては、以下も分かりやすいと思うので、↓こちらも参照ください。
Springフレームワーク@Beanと@componentの違い