spring注解驱动开发--自动装配之找bean
2019-07-07 14:14
585 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shui_1234/article/details/94985828
用一句话描述Autowired的作用就是,在ioc容器中找到并装配需要的组件。 Autowired功能相似@Resource和@Inject都有什么相似与不同呢?在下面给大家一一揭晓
@Autowired 如何找到需要的组件
- 默认使用类型去找,例如
applicationContext.getBean(Dao.class)
- 如果找到多个,再把名称当作id去找,所以这里注入的名字一般不要乱写,例如
@Autowired Dao dao; applicationContext.getBean(dao);
- 当然也可以和@Qualifier(“dao1”)搭配使用,这样就指定了需要加载的bean的id。
@Qualifier("dao1") @Autowired Dao dao;
- 自动装配默认一定要把属性值装配好,如果找不到某个属性组件,就会报错;但是也可以给autowired的属性值设置为false;
@Autowired(required=false) Dao dao;
5.如果出现多个相同的bean时,也可以使用@Primary来指定一个首选的bean装载。其余的可以使用@Qualifier去指定具体的id。
@Autowired 是如何实现装配的
它是由与bean的后置处理器完成装配的,即AutowiredAnnotationBeanPostProcessor,在之前介绍组件注册时已经介绍过后置处理器相关原理,感兴趣的童鞋可以自己去看下源码。
与@Resource、@Inject的区别和联系
- @Resource是JSR250提供的自动注入的方式,也就会说它是java规范提供,用法与@Autowired相差较多,它不能与primary和qualifier注解配合使用,也没有Autowired的required属性,只有一个与value属性类似的name属性,可以指定bean的id。
- @Inject是JSR330提供的,它的功能和@Autowired基本一致,但是没有required属性。
- 综合以上两种注解与@Autowired的对比,还是spring比较强大。。。。。
相关文章推荐
- Spring注解驱动开发-自动装配@Profile根据环境注册bean
- spring注解驱动开发--自动装配之Autowired
- Spring注解驱动开发-属性赋值&自动装配(三)
- Spring常用注解,自动扫描装配Bean
- Spring 全注解配置 bean 和 调用 (6) 自定义注解 自动装配歧义性消除
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-004-消除BEAN自动装配的歧义@QUALIFIER及自定义注解
- Spring常用注解,自动扫描装配Bean
- spring-使用注解实现Bean自动装配1
- Spring常用注解,自动扫描装配Bean
- java spring - 自动装配Bean 注解大全
- Spring注解开发之自动装配
- spring-使用注解实现Bean自动装配2
- spring注解自动装配Bean
- Spring常用注解,自动扫描装配Bean
- Spring注解驱动开发-@ComponentScan自动扫描组件&指定扫描规则
- Spring学习:bean的自动装配(注解)
- Spring注解驱动开发-Bean的生命周期
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
- Spring自动注解装配、自动检测装配Bean配合过滤组件使用
- 用spring的注解建立bean与bean之间的关系组件装配及自动注入依赖对象