# @Component与@Bean有什么区别?

@Component在@Bean应用开发中用的非常多。

@Component注解是一个通用注解。可以用于任何类上。如普通的java类、业务逻辑组件、持久化对象等。通过@Component注解Spring会自动去创建这个类的实例对象。注入到一个spring IOC容器里面。

@Bean注解是用于配置类中声明一个Bean的。它通常用在配置类的方法上面的。表示把这个方法的返回对象注册到spring IOC容器中。通过@Bean注解我可以自己定义Bean的创建和初始化的过程。包括指定Bean的名称、作用域、依赖关系等。

# 区别

第一:它用途不同。@Component注解是用于标识一个普通类。而@Bean注解是在配置类中去声明和配置一个Bean对象。

第二:使用方式不同。@Component注解是一个类级别的注解,Spring可以通过@ComponentScan注解去扫描修饰@Component注解的一个类。并且把这些类注册到spring IOC容器里面。而@Bean注解是修饰在方法层面。它是在配置类中去手动的声明一个Bean的定义。

第三:控制权不同。@Component注解修饰的类是由Sping框架来创建和初始化的。@Bean注解允许开发人员手动的去控制Bean的创建和配置过程。所以@Bean注解在配置上会更加灵活些。

Last Updated: 4/3/2026, 6:47:37 AM