Я устанавливаю общую структуру сервиса в бэкэнде Java Spring.У меня есть служба со следующей подписью
public class GenericService<T, S extends ObjectService<T>> { ... }
. В этой службе я выполняю автоматическое подключение S следующим образом:
@Autowired
private S objectService;
У меня также есть 3 службы, реализующие интерфейс ObjectService:
- UserService реализует ObjectService
- LocationService реализует ObjectService
- CompanyService реализует ObjectService
В другой службе я хотел бы автоматически подключить следующие конкретные службы:
@Autowired
private GenericService<User, UserService> genericUserExportService;
@Autowired
private GenericService<Location, LocationService> genericLocationExportService;
@Autowired
private GenericService<Company, CompanyService> genericCompanyExportService;
Пытаясь это сделать, я получаю следующее сообщение об ошибке:
expected single matching bean but found 3
Я уже нашел решение с созданием подкласса из GenericService для пользователя, местоположения и компании, но мне это не нравитсяпотому что мне нужно создать множество пустых подклассов, например:
public class GenericUserService extends GenericService<User, UserService> { ... }
Есть ли лучшее решение для моей проблемы?