Spring中@Bean和@Component批注之间的区别。

 Spring支持多种类型的注释,例如@ Component,@ Controller,@ service @Repository和@Bean。所有这些都可以在org.springframework.stereotype包下找到。

当我们的应用程序中的类使用上述任何注释进行注释时,则在项目启动时进行spring扫描(使用@componentScan),然后将每个类注入到IOC容器中。@ComponentScan要做的另一件事是运行带有@Bean的方法,并将返回对象作为Bean恢复到Ioc容器。

序号@豆角,扁豆@零件
1
自动侦测
它用于显式声明单个bean,而不是让Spring自动执行。 
如果有任何用@Component注释的类,它将使用类路径扫描自动检测到。
2
弹簧容器
即使类在弹簧容器之外也可以创建Bean
如果类不在spring容器之外,则无法创建bean
3
类/方法级别注释
它是方法级别的注释
这是一个类级别的注释
4
@组态
仅当类也用@Configuration注释时,它才有效
它无需
@Configuration注释即可工作
5
用例
如果您想要基于动态条件的特定实现,则应使用@bean。
我们不能根据动态条件编写特定的实现

@Component的示例

@Component
public class Pizza{

   ........


}

@Bean的示例

@Configuration
class AppConfiguration{

   @Bean
   public User getUse(){
      return new User();
   }
}