mam klasa abstrakcyjna AbstractService
który ma odniesienie do AbstractDAO
Autowire zależności od podklasy
class AbstractService{
protected AbstractDAO abstractDAO;
}
AbstractService
zostanie przedłużony o rzeczywistych klas usług jak ServiceClassA
, ServiceClassB
itp i AbstractDAO
zostanie przedłużony o DaoClassA
, DaoClassB
itp
zależności od tego, która klasa rozciąga AbstractService
, abstractDAO
powinny być przykładem DaoClassA
, DaoClassB
itp
można to osiągnąć przez posiadanie setera abstractDAO w klasie rozciągającej jak
class ServiceClassA{
@Autowired
@Qualifier("daoClassA")
public void setAbstractDAO(AbstractDAO abstractDAO) {
super.abstractDAO = abstractDAO;
}
}
Czy istnieje jakiś sposób, aby mieć setter setAbstractDAO
w AbstractService
klasa sama i abstractDAO
dostaje Autowired zależności od podklasa może wTH Spel + Qualifier etc
nie chcemy używać dowolnej konfiguracji XML dla tego
Czy jest jakiś powód, dla którego nie można umieścić na przykład '@Apiowired DaoClassA dao' na' ServiceClassA'? Dlaczego pole musi być zadeklarowane w 'AbstractService'? – skaffman
Świetne pytanie. Zawsze robiłem coś podobnego do opisywanego przez ciebie podejścia (nieco innego, ale tego samego podstawowego pomysłu) i zawsze chciałem czegoś bardziej automatycznego. Chętni do sprawdzenia, czy ktoś ma dobre podejście. –
@skaffman W przypadkach, które miałem, chciałem, aby usługa AbstractService miała dostęp do AbstractDao, dzięki czemu mogłem napisać ogólne wersje operacji CRUD, między innymi. –