1. @Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean
  2. @Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。

两者的目的是一样的,都是注册beanSpring容器中。

区别:

  • @Component(@Controller、@Service、@Repository)通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。
  • @Bean注解通常是我们在标有该注解的方法中定义产生这个bean的逻辑。
  • @Component作用于类,@Bean作用于方法。

总结:

@Component@Bean都是用来注册Bean并装配到Spring容器中,但是BeanComponent的自定义性更强。可以实现一些Component实现不了的自定义加载类。

原文章链接:https://zhuanlan.zhihu.com/p/145852514
最后修改:2022 年 06 月 02 日
如果觉得我的文章对你有用,请随意赞赏