Spring基础19——Spring中几种注解的区别

1、@Autowired:注解是用来装配bean的,需要注入的bean必须是已经被IOC容器创建的bean,这个注解是利用类型装配的,如果容器中出现一个以上要装配的类或其子类就需要用@Qualifier(value = "userRepositoryImpl")注解来标志你要注入的是哪个bean,这也就解释了mybatis自动创建的代理类为什么@Autowired能装配进来,因为不管这些生成的代理类叫什么名字,都是按照类型注入进来的,因为这些生成的代理类都实现了他们各自对应的Mapper接口。

2、@Bean:是用来创建bean的,根据它源码的定义,是属于一个方法级别的注解,只能标注在方法当中,并且他只能在<context:component-scan>可以扫描到的组件下面的类中使用,如@Component、 @Controller、@Repository、@Service、@Configuration,单独使用是无效的。

3、@Configuration:同样是可以被扫描到的组件@Configuration 注解本质上还是 @Component.

原文地址:https://www.cnblogs.com/fengyun2019/p/10844708.html