Spring中自己主动装配
2016-02-24 20:34
351 查看
自己主动装配
在我们了解过constructor-arg和property装配中。都须要配置对应的属性和值或者引用,假设在比較复杂的项目中。就会使得XML的配置变得复杂,自己主动装配能够使用较少的配置实现。
主要通过使用bean的autowire属性来控制,autowire可取值:
byName:为属性自己主动装配id与该属性的名字同样的bean
比如:People中有一个名为dog的Dog类
<beanclass=”People” id=”p” autowire=”byName”/>
<beanid=”dog” class=”Dog”>
byType:与byName不同的是,通过类型来选择装配的属性
<beanclass=”People” id=”p” autowire=”byType”/>
< beanid=”dog1” class=”Dog”>
假设我们有多个Dog bean那么此时byType就不会装配。而是抛出异常,对于此。我们能够设置首先装配的bean。通过将Dog bean的primary属性设置为false(默觉得true,都是首选bean),还能够设置autowrie-candidate为false,将该bean排除在装配外。
constructor:通过构造器装配,此时就不再须要constructor-arg装配,当我们装配一个bean时,选用constructor。那么该bean就会去寻找该构造方法中能够使用的參数,假设此时有多个的话。那么就会抛出异常。
注意:此时不能使用constructor-arg
autodetect:自己主动装配。首先会选用constructor。假设没有。在选用byType.
假设我们须要为全部的bean选择同样的默认装配方式,能够再beans元素中,使用default-autowire属性来指定
我们通常使用手动装配和自己主动装配的混合模式。
在我们了解过constructor-arg和property装配中。都须要配置对应的属性和值或者引用,假设在比較复杂的项目中。就会使得XML的配置变得复杂,自己主动装配能够使用较少的配置实现。
主要通过使用bean的autowire属性来控制,autowire可取值:
byName:为属性自己主动装配id与该属性的名字同样的bean
比如:People中有一个名为dog的Dog类
<beanclass=”People” id=”p” autowire=”byName”/>
<beanid=”dog” class=”Dog”>
byType:与byName不同的是,通过类型来选择装配的属性
<beanclass=”People” id=”p” autowire=”byType”/>
< beanid=”dog1” class=”Dog”>
假设我们有多个Dog bean那么此时byType就不会装配。而是抛出异常,对于此。我们能够设置首先装配的bean。通过将Dog bean的primary属性设置为false(默觉得true,都是首选bean),还能够设置autowrie-candidate为false,将该bean排除在装配外。
constructor:通过构造器装配,此时就不再须要constructor-arg装配,当我们装配一个bean时,选用constructor。那么该bean就会去寻找该构造方法中能够使用的參数,假设此时有多个的话。那么就会抛出异常。
注意:此时不能使用constructor-arg
autodetect:自己主动装配。首先会选用constructor。假设没有。在选用byType.
假设我们须要为全部的bean选择同样的默认装配方式,能够再beans元素中,使用default-autowire属性来指定
我们通常使用手动装配和自己主动装配的混合模式。
相关文章推荐
- Java中Comparable和Comparator区别小结
- 206. Reverse Linked List
- Java类名与文件名关系
- Java NIO:浅析I/O模型
- java调用cmd命令 exp导出数据库表格数据
- java调用cmd命令 exp导出数据库表格数据
- spring MVC访问静态文件如 .css .js
- java生产者消费者模式练习
- java反射机制详解
- eclipse创建avd
- 4 java语句 4.2条件语句
- 上机题目(初级)- 数据库事务(Java)
- 如何在Eclipse中一个简单程序
- [转载]java中io流关闭的顺序
- Java学习笔记(二):String
- JDK安装与环境变量配置
- java调用usb摄像头
- 如何获取SD卡的 剩余容量和总容量(Eclipse,studio如何导入现存的项目)
- JAVA求前一天的日期
- javaji基础x4