第一种,通过使用xml配置的方式
此方式需要在applicationContext.xml文件中配置bean的方式完成
<bean id="customerService" class="com.w.demo3.CustomerServiceImpl">
<property name="p1" ref="p1"/>
<property name="p2" ref="p2"/>
</bean>
<bean id="p1" class="com.w.demo3.Product1DaoImpl"></bean>
<bean id="p2" class="com.w.demo3.Product2DaoImpl"></bean>
同时需要在service层对属性添加set方法
private Product1DaoImpl p1;
private Product2DaoImpl p2;
public void setP1(Product1DaoImpl p1) {
this.p1 = p1;
}
public void setP2(Product2DaoImpl p2) {
this.p2 = p2;
}
这样就可以实现属性的注入了。
第二种方式是纯注解型
需要在applicationContext.xml文件中配置开启扫描组件注解
<context:component-scan
base-package="com.w.demo3" />
然后再service层的每个DaoImpl中添加@Autowired
@Autowired
private Product1DaoImpl p1;
@Autowired
private Product2DaoImpl p2;
不用设置set方法,这样就实现了第二种属性注入了。
第三种是xml和注解混合的方式。
需要在applicationContext.xml文件中配置开启注解
<context:annotation-config/>
<bean id="customerService" class="com.w.demo3.CustomerServiceImpl">
</bean>
<bean id="p1" class="com.w.demo3.Product1DaoImpl"></bean>
<bean id="p2" class="com.w.demo3.Product2DaoImpl"></bean>
然后再service层中添加@Resource
@Resource(name="p1")
private Product1DaoImpl p1;
@Resource(name="p2")
private Product2DaoImpl p2;
不需要设置set方法,这样可以实现第三种方式注入了,希望对你有帮助。喜欢的朋友可以关注我微信的公众号:从小白到架构师。我会每天更新学习内容的。