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.