答:
1. 作用對象不同: @Component 注解作用於類,而@Bean注解作用於方法。
2 .@Component通常是通過類路徑掃描來自動偵測以及自動裝配到Spring容器中(我們可以使用 @ComponentScan 注解定義要掃描的路徑從中找出標識了需要裝配的類自動裝配到 Spring 的 bean 容器中)。
@Bean 注解通常是我們在標有該注解的方法中定義產生這個 bean,@Bean告訴了Spring這是某個類的示例,當我需要用它的時候還給我。
3. @Bean 注解比 Component 注解的自定義性更強,而且很多地方我們只能通過 @Bean 注解來注冊bean。比如當我們引用第三方庫中的類需要裝配到 Spring容器時,則只能通過 @Bean來實現。