1

私の英語でごめんなさい。春にジェネリッククラスの依存性注入を行うことはできません。ジェネリック クラス:

abstract class BaseBO<Id, Entity, DAOClass extends DAO<Id, Entity>> implements BO<Id, Entity, DAOClass> {
    DAOClass dao;

    public DAOClass getDAO() {
        return dao;
    }
    //...
}

ジェネリック クラスを使用します。

public class TaskBO extends BaseBO<Long, Task, TaskDAO> implements BO<Long, Task, TaskDAO> {

}

TaskBOプロパティのクラスで依存性注入を行いたいですTaskDAO。しかし、 beanTaskDAOのインターフェースを介して依存関係を設定することしかできません:DAOTaskBO

<bean id="TaskBO" class="com.otv.model.bo.TaskBO">
        <property name="DAO" ref="TaskDAO" />
</bean>

<bean id="TaskDAO" class="com.otv.model.dao.TaskDAO">
        <property name="sessionFactory" ref="SessionFactory" />
</bean>

クラス経由で依存性注入を設定するにはTaskDAO?

4

1 に答える 1

0

スタック トレースがある場合は、エラーのあるスタック トレースを添付します。

すべてのプロパティアクセサーに一貫したケースを使用する前に:

abstract class BaseBO<Id, Entity, DAOClass extends DAO<Id, Entity>> implements BO<Id, Entity, DAOClass> {
    DAOClass dao;

    public DAOClass getDao() {
        return dao;
    }
    //...
}

ほとんどの場合、 BaseBO.dao プロパティのセッターが必要です

public void setDao(DAOClass dao) {
  this.dao = dao;
}

また

public class TaskBO extends BaseBO<Long, Task, TaskDAO> implements BO<Long, Task, TaskDAO> {

    public void setDao(TaskDAO dao) {
      super.dao = dao;
    }

}
于 2013-08-17T11:33:25.240 に答える