Постараюсь быть максимально подробным. У меня много DAO, и мой сервис должен использовать один из них в зависимости от полученного ключа. Например -
if(key.equals("abc") {
obj = abcDAO.getOne(id);
} else if(key.equals("xyz") {
obj = xyzDAO.getOne(id);
}
Объект имеет тип родительского класса, а ab c, xyz .. все дочерние классы.
Моя идея - создать Map<String, ParentCLass>
, чтобы получить объект, просто передав ключ вместо If-else, чтобы его было легко добавить для дальнейших изменений. Если бы это был обычный класс, я бы инициализировал карту как
Map<String, ParentClass> map.
map.put("abc", new Abc());
Но поскольку DAO - это интерфейсы и для их использования требуется @Autowired, я не знаю, как продолжить. Я начинающий. Любая помощь приветствуется.