@Configuration和@Component注解的不同用途和作用范围
@Configuration和@Component是两个常见的注解,用于实现依赖注入和组件扫描等功能。
@Configuration注解
@Configuration
注解用于标识一个类作为配置类,它通常与@Bean
注解一起使用。
1. 通过@Configuration
注解,我们可以将类标识为配置类,并使用@Bean
注解在该类的方法上定义Bean
2. 配置类中的@Bean
方法会在运行时被调用,用于创建Bean实例并添加到Spring容器中
3. 配置类可以通过@Autowired
或@Resource
等注解实现依赖注入,将其他Bean注入到配置类中
@Component注解
Component
注解用于标识一个类作为组件,表示这个类是可被Spring容器扫描和管理的一个组件
1. 被@Component
注解标识的类会被自动扫描,并创建对应的Bean实例
2. 被@Component
注解标识的类可以通过@Autowired
或@Resource
等注解实现依赖注入。
两者区别
1. @Configuration
注解用于标识配置类,它是专门用于配置Spring容器的类;而@Component
注解用于标识组件类,它是通用的注解,用于标识任何可被Spring管理的组件
2. @Configuration
注解主要用于定义Bean的创建和配置规则,提供了更多的配置选项,如使用@Bean
定义Bean;而@Component
注解主要用于实现组件的自动扫描和依赖注入。
3. @Configuration
注解常用于配置类中,用于定义一组相关的Bean配置;而@Component
注解常用于普通的组件类中,用于标识该类为Spring管理的组件。
大白话总结:
被 @Configuration 定义的类 一般可以使用类中被@Bean 配置
该类的方法上定义Bean的,而@Component 则直接可以使用@Autowired 或者 @Resource 使用