当XXXservice继承baseservice遇到basedao为null时的思考
思考:
在xxxService也必须注入BaseDao吗?
测试
private BaseDao BaseDao
get
set
测试失败。。。。。
怀疑是否为网上说的
Spring不会自动去给BaseAction注入需要的Service Bean
也就是注入parent
一种是
全用注解
<bean id="BaseDao" class="com.tsinghua.dao.impl.BaseDaoimpl">
<property name="sessionFactory"><ref bean="sessionFactory" /></property>
</bean>
<bean id="BaseService" class="com.tsinghua.service.BaseServiceimpl">
<property name="basedao"><ref bean="BaseDao" /></property>
</bean>
1.将BaseDao的sessionFactory用注解方式注入
2.将BaseService的BaseDao用注解方式注入
Spring会自动判断父类
测试失败。。。。。
一种是在类中使用
@Resource private BaseServiceImpl baseService;
测试失败。。。。。
解决。。。。。。。。。。
解决方法:
在xxxService 里,设置dao的时候需要super.set(dao)一下就行了, 不用在spring再注入一次了(虽然再注入也可以,但毕竟不规范)。
如下所示:
Java代码
public void setProductDao(ProductDao productDao) {
super.setBaseDao(ProductDao);
this.Product = productDao;
}
成功