1.属性注⼊
前⾯学过属性注⼊,set⽅法、构造函数等,属于⼿⼯注⼊
有没办法实现⾃动装配注⼊?
2.Spring⾃动注⼊
使⽤元素的 autowire 属性为⼀个 bean 定义指定⾃动装配模式
autowire设置值 :
no:没开启
byName: 根据bean的id名称,注⼊到对应的属性⾥⾯
byType:根据bean需要注⼊的类型,注⼊到对应的属性⾥⾯ 如果按照类型注⼊,存在2个以上bean的话会抛异常 expected single matching bean but found 2
constructor: 通过构造函数注⼊,需要这个类型的构造函数
<!--autowire属性是默认值是no,byName是根据videoOrder对象中的属性名自动注入,byType是根据类型自动注入-->
<bean id="videoOrder" class="com.xx.domain.VideoOrder" depends-on="video" autowire="byName">
<!--name是属性名称-->
<property name="id" value="8"/>
<property name="outTradeNo" value="15534e55fc"/>
</bean>
测试:
public static void testInject(ApplicationContext context){
Video video1=(Video)context.getBean("video");
System.out.println(video1.getTitle());
VideoOrder videoOrder=(VideoOrder)context.getBean("videoOrder");
System.out.println(videoOrder.getVideo().getTitle());
}
测试结果:
如上图所示:video对象被创建