spring mvc中当XXXservice继承baseservice遇到basedao为null时的思考

当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;  
}

成功

你可能感兴趣的:(DAO,spring,bean,mvc,测试,null)