Spring auto wire(自动装配) 的 五种方式
来源:互联网 发布:苹果电脑安装软件 编辑:程序博客网 时间:2024/05/01 20:21
转载:
http://www.2cto.com/kf/201303/196240.html
http://langgufu.iteye.com/blog/2038747
http://www.cnblogs.com/elleniou/archive/2013/07/03/3168836.html
<bean>的autowire属性有如下六个取值,他们的说明如下:
1、 No:即不启用自动装配。Autowire默认的值。
2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。比如说类Computer有个属性printer,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为printer的bean,然后使用Seter方法为其注入。
3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用Seter方法为其注入。
4、 constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。
5、 autodetect:在byType和constructor之间自动的选择注入方式。
6、 default:由上级标签<beans>的default-autowire属性确定。
注意:在配置bean时,<bean>标签中Autowire属性的优先级比其上级标签高,即是说,如果在上级标签中定义default-autowire属性为byName,而在<bean>中定义为byType时,Spring IoC容器会优先使用<bean>标签的配置。
@Resource、@Autowired和default-autowire区别联系
今天看了一工程,里面既有default-autowire,又有@Autowired,还有@Resource。我就不明白是他们写程序的风格不一致,还是根本区分不开这些的关系,于是我就问其中一个工程师,原来真的是还没明白这三者的区别,这里我就介绍下,希望能给初学者一些帮助。
一、@Resource与@Autowired的区别?
1.@Autowired按byType自动注入。
2.@Resource默认按byName自动注入。
但是@Resource有两个属性是比较重要的,分是name和type;
如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略;
3.@Autowired是spring自己定义的注解,@Resource是J2EE的,由JSR-250规范定义。
PS:个人建议用@Resource,不为什么,减少与spring的耦合。
那么,
二、@Autowired、@Resource与default-autowire="byType"、default-autowire="byName"有什么关系呢?
确切的说,没有任何关系。
Annotation注入和autowire是没有关系的。
Autowire的功能是在application context里实现的,
而annotation注入的功能是通过BeanPostProcessor来实现的。无论你是否autowire,只要你写了@Resource或@Autowired注解,对象就会被注入。
PS:个人不建议打开default-autowire="byName",这会导致很多不确定的注入。
- Spring auto wire(自动装配) 的 五种方式
- Spring auto wire(自动装配) 的 五种方式
- Spring auto wire(自动装配) 的 五种方式
- Spring auto wire(自动装配) 的 五种方式
- Spring auto wire(自动装配) 的 五种方式
- 3、spring的五种自动装配方式
- spring基础-Bean的装配方式(三)自动装配
- (五)spring 自动装配
- Spring中Bean自动装配的五种模式
- Spring的自动装配Bean的三种方式
- Spring的自动装配Bean的三种方式
- Java乔晓松-spring自动装配Bean的4种方式
- Spring中自动装配的三种方式
- Spring自动装配Bean属性的四种方式
- Spring自动装配@Autowired的三种方式
- Spring基础---自动装配的方式
- Spring实现控制反转(IOC)的三种方式(三)——自动装配
- SPRING的自动装配
- Bootstrap 响应式布局模板
- 使用mven编译apache-shiro出错
- android listview改变字体的大小、颜色
- Codeforces Round #343 (Div. 2) B. Far Relative’s Problem(O(1)的线段标记)
- redis hash结构及命令详解
- Spring auto wire(自动装配) 的 五种方式
- Hive日志分析案例二
- Android AsynTask
- 234. Palindrome Linked List
- Unexpected text found in layout file
- redis中的事务
- iOS开发中代码块的使用
- poj 3667 hotel
- Learning Python-the third chapter