J_web 2012-09-17 17:13
浏览 201
已采纳

ssh封装了基类后出现空指针异常

 

<bean id="baseDao" class="com.iwiz.dao.impl.BaseDaoImpl">
    <property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="noteDao" class="com.iwiz.dao.impl.NoteDaoImpl" parent="baseDao"></bean>

 <bean id="baseService" class="com.iwiz.service.impl.BaseServiceImpl">

   <property name="baseDao" ref="baseDao"></property>
</bean>
<bean id="noteService" class="com.iwiz.service.impl.NoteServiceImpl" parent="baseService">
    <property name="noteDao" ref="noteDao"></property>
</bean>

 public class BaseDaoImpl<T, PK extends Serializable> implements BaseDao<T, PK> {

    private Class<T> entityClass;

    public BaseDaoImpl() {
    this.entityClass = null;
    Class<T> c = (Class<T>) getClass();
    Type type = c.getGenericSuperclass();
    if(type instanceof ParameterizedType) {
        Type[] parameterizedType = ((ParameterizedType)type).getActualTypeArguments();
        this.entityClass = (Class<T>) parameterizedType[0];
    }
    }
    
    public T findById(PK id) {
    return (T) getSession().load(entityClass, id);
    }
}

 public class NoteServiceImpl extends BaseServiceImpl<Note, String> implements NoteService {

    private NoteDao noteDao;

    public void setBaseDao(NoteDao noteDao) {
    super.setBaseDao(noteDao);
    }

    public void setNoteDao(NoteDao noteDao) {
    this.noteDao = noteDao;
    }
}

 tomcat在启动的时候并没有执行红色字体的代码,导致调用findById时entityClass为空值,但是BaseDaoImpl的构造方法已经把所需要的类都通过反射得到了呀,怎么回事呀?怎样才能让tomcat启动就能执行红色字体的代码?我漏了什么配置了还是...?

  • 写回答

1条回答 默认 最新

  • jinnianshilongnian 2012-09-17 17:46
    关注

    bean id="noteService" class="com.iwiz.service.impl.NoteServiceImpl" parent="baseService">



    改成

    bean id="noteService" class="com.iwiz.service.impl.NoteServiceImpl" parent="baseService">



    2、
    private NoteDao noteDao;

    public void setBaseDao(NoteDao noteDao) {
    super.setBaseDao(noteDao);
    }

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题