有继承时spring注入空指针问题
我有一个接口BaseService和实现类BaseServiceImpy,这个接口提供一些公用方法,其余Service继承这个BaseService。在BaseServi...
我有一个接口BaseService和实现类BaseServiceImpy,这个接口提供一些公用方法,其余Service继承这个BaseService。
在BaseService接口内注入BaseDao,这个BaseDao也是提供一些通用方法的。
在spring中注入如下:
<bean id="baseDao" class="com.dao.impy.BaseDaoImpy">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="baseService" class="com.service.impy.BaseServiceImpy">
<property name="baseDao" ref="baseDao"></property>
</bean>
举例来说,我在BaseService中提供一个方法:
public List findByHql(String hql);
其实现类中具体实现为:
public List findByHql(String hql) {
this.baseDao.findByHql(hql); //baseDao以实现此方法。
}
现在我有一个具体业务的Service名为UserService:
public interface UserService extends BaseService;
当我在action中通过userService调用findByHql(String hql);方法时,报空指针异常,断点发现是baseDao== null,并未注入进去,这是为什么呢?
楼下说的虽然都不正确,但还是谢谢各位。
解决方法是,不许在子类,也就是userService的Spring配置中注入baseDao 展开
在BaseService接口内注入BaseDao,这个BaseDao也是提供一些通用方法的。
在spring中注入如下:
<bean id="baseDao" class="com.dao.impy.BaseDaoImpy">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="baseService" class="com.service.impy.BaseServiceImpy">
<property name="baseDao" ref="baseDao"></property>
</bean>
举例来说,我在BaseService中提供一个方法:
public List findByHql(String hql);
其实现类中具体实现为:
public List findByHql(String hql) {
this.baseDao.findByHql(hql); //baseDao以实现此方法。
}
现在我有一个具体业务的Service名为UserService:
public interface UserService extends BaseService;
当我在action中通过userService调用findByHql(String hql);方法时,报空指针异常,断点发现是baseDao== null,并未注入进去,这是为什么呢?
楼下说的虽然都不正确,但还是谢谢各位。
解决方法是,不许在子类,也就是userService的Spring配置中注入baseDao 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询