У меня есть абстрактный класс AbstractService
, который имеет ссылку на AbstractDAO
class AbstractService{
protected AbstractDAO abstractDAO;
}
AbstractService
будет расширен за счет фактических классов обслуживания, таких как ServiceClassA
, ServiceClassB
и т. д., а AbstractDAO
будет расширен за счет DaoClassA
, DaoClassB
и т. д.
В зависимости от того, какой класс расширяет AbstractService
, abstractDAO
должен быть экземпляром DaoClassA
, DaoClassB
и т. д.
Я могу добиться этого, имея установщик abstractDAO в расширяющем классе, например
class ServiceClassA{
@Autowired
@Qualifier("daoClassA")
public void setAbstractDAO(AbstractDAO abstractDAO) {
super.abstractDAO = abstractDAO;
}
}
Есть ли способ, чтобы сеттер setAbstractDAO
был в самом классе AbstractService
, а abstractDAO
получал Autowired в зависимости от подкласса, возможно, с помощью SPEL + Qualifier и т. д.
Мы не хотим использовать для этого какую-либо конфигурацию XML.
@Autowired DaoClassA dao
вServiceClassA
? Почему поле нужно объявлять вAbstractService
? - person skaffman   schedule 22.02.2012