Spring dependency injection and generic class

z3r9

Sorry for my English. I can not to do dependency injection for generic class in spring. Generic class:

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

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

Use generic class:

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

}

I want to do dependency injection in a class TaskBO for property TaskDAO. But I can only to set dependency TaskDAO via a interface DAO for bean TaskBO:

<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>

How to set dependency injection via class TaskDAO?

Luca Basso Ricci

Attach stacktrace with error if you have one.

Before all use consistent case for property accessor:

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

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

Most probably you need a setter for BaseBO.dao property

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

or

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

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

}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related