У меня следующий вопрос
У меня есть следующий интерфейс
public interface EscalationComponentDao {
public EscalationComponent insertNewEscalationComponent(Escalation escalation, String componentName);
}
и следующая реализация
@Repository
public class EscalationComponentDaoImpl {
// code skipped for brevity
}
Затем класс BaseDaoImpl, реализующий интерфейс, в котором я расширил класс EscalationComponentDao
public interface BaseDao extends EscalationComponentDao
и
@Repository
public class BaseDaoImpl implements BaseDao {
В BaseDaoImpl I автопроводка EscalationComponentDao
@Autowired
public EscalationComponentDao escalationComponentDao;
и в своем классе обслуживания я автоматически подключил BaseDao
@Autowired
public BaseDao basedao;
Но, как вы видите выше, я забыл написать EscalationComponentDaoImpl "реализует EscalationComponentDao".
С отсутствующим пропуском, когда я запустил сборку maven, произошел сбой со следующей циклической ошибкой зависимости от baseDao.
---- Бин с именем "baseDaoImpl" был добавлен в другие бины в его сырой версии как часть циклической ссылки.
После того, как я добавил «внедряет EscalationComponentDao» в EscalationComponentDaoImpl, проблема исчезла.
@Repository
public class EscalationComponentDaoImpl implements EscalationComponentDao{
// code skipped for brevity
}
У меня вопрос - почему Spring вызывал ошибку циклической зависимости, когда реальная проблема заключалась в том, что я не реализовал интерфейс?