У меня есть некоторые весьма повторяющийся код, который я решил перейти в абстрактный класс, для простоты будем считать, что класс выглядит следующим образом:Вводят общая служба боб
class AbstractEntityService<E extends MyEntity, REPO extends MyRepository<E>> {
@Autowired
private REPO repo;
... // methods
}
и у меня есть около 10 отдельных классов что нужна эта функциональность так что я
@Service
class MyService1 extends AbstractEntityService<MyEntity1, MyEntity1Repo> {}
@Service
class MyService2 extends AbstractEntityService<MyEntity2, MyEntity2Repo> {}
...
MyService1 ... MyService10 на самом деле не делать ничего, кроме цемента типов для автоопределения весны работать.
Я интересно, если я могу уйти, не определяя их и инъекционного
@Autowired
private AbstractEntityService<MyEntity2, MyEntity2Repo> myEntity2Repo;
непосредственно без определения классов самостоятельно.
Возможно, вы сможете автоподписать подкласс, но конкретный класс должен существовать, и я не думаю, что есть какой-то способ заставить Spring создать его для вас. Мне любопытно, что вы делаете в абстрактном классе, поскольку я кодировал довольно большие проекты Spring/JPA, и у меня никогда не было необходимости в этом? –