Spring自动装配之byName和byType【Spring入门】
来源:互联网 发布:焊接画图软件 编辑:程序博客网 时间:2024/06/05 05:15
在使用Spring框架时,有些bean中有个成员变量是另一个bean。举个实际的例子,比如说CDPlayer类(CD播放器类)中有一个属性是CD(接口),代表着CDPlayer可以放各种CD,可以实例化为Mayday(五月天的歌)。
原来我们需要在配置CDPlayer这个bean的时候添加<porperty>,手动装配。代码如下:
<bean id="cd" class="com.yykj.Mayday" /> <bean id="cdPlayer" class="com.yykj.CDPlayer"> <!--name这个值是根据setter方法名来确定的,所以手动装配setter是必须有的--> <property name="cd" ref="cd"/> </bean>现在我们使用自动装配,不需要添加<porperty>属性。
这是CDPlayer类:
package com.yykj;public class CDPlayer { private CD cd;/* byName自动装配以及手动装配都与setter方法名有关,与属性无关。 byType自动装配与setter中的参数类型有关*/ public void setCd(CD cd) { this.cd = cd; } public void play(){ cd.Play(); }}
测试类:
package com.yykj;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)//在测试时,不启动服务器,所以不会加载web.xml,要手动初始化spring配置文件@ContextConfiguration(locations = "classpath*:applicationContext.xml")public class TestCD { @Test public void CDPlayerTest(){ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");//获取上下文 CDPlayer cdPlayer = context.getBean(CDPlayer.class); cdPlayer.play(); }}
自动装配有两种方式:
1.byName
在spring配置文件的<beans>标签中加入代码:dafault-autowire="byName"。
被装配类中的setter方法还是需要的,因为是byName,所以setter方法名要与bean的id对应,比如bean的id为cd,那么setter方法名为setCd。
2.byType
在spring配置文件的<beans>标签中加入代码:dafault-autowire="byType"。
被装配类中的setter方法的参数类型要与bean的class的类型一样,才能自动装配到。
注意:以上两种自动装配方法本质上都是通过反射,构造出对应的setter方法,然后执行setter方法。
0 0
- Spring自动装配之byName和byType【Spring入门】
- Spring Autowire自动装配byName和byType
- Spring的自动装配(byName;byType)
- Spring的自动装配(byName;byType)
- Spring的自动装配(byName;byType)
- spring 自动装配 default-autowire="byName/byType"
- spring 自动装配 default-autowire="byName/byType"
- spring 自动装配autowire=byName或byType
- spring 自动装配 default-autowire="byName/byType"
- 玩转Spring----autowire的bytype 和byname 装配
- Spring 框架--byType自动装配
- spring属性 byName自动装配
- Spring 中的byName与 byType
- Spring 中的byName与 byType
- Spring 中的byName与 byType
- Spring中的byName与byType
- Spring注入中byType和byName的总结
- Spring注入中byType和byName的总结
- 对象、集合参数传送时(Content-Type的类型为application/json)
- synchronized方式实现生产者-消费者模式
- Java8中stream用法
- 如何判断网络是否进入拥塞状态
- 拓展欧几里得
- Spring自动装配之byName和byType【Spring入门】
- 数字三角形(顺推一维版)
- 数字三角形 Number Triangles (逆推)
- PHP获取当前页面完整URL地址函数
- 怎么把焦点放在RichEdit的最后一行
- liunx系统在终端里隐藏命令行当前目录提示
- 完全覆盖
- (ssl1458)数字金字塔(三角形)逆推法
- 如何将OpenCV的类型描述符与int值对应