Spring中@Component和@Bean的异同

来自姬鸿昌的知识库
跳到导航 跳到搜索

概述

@Component

表明一个类会作为组件类,并告知Spring要为这个类创建bean


@Bean

告知Spring这个方法将会返回一个对象,这个对象需要注册为Spring上下文中的bean,通常方法体中包含了最终产生bean实例的逻辑


相同点

都可以为Spring容器注册Bean对象


区别

作用对象不同

@Component

@Component 注解作用于类

@Bean

@Bean 注解作用于方法


使用方法不同

@Component

@Component 注解直接标注在类声明上面即可

@Bean

@Bean 需要在配置类中使用,即类上需要加上 @Configuration 注解,然后在配置类中使用一个方法来自定义 bean 是如何创建的

实现不同

灵活性不同