У меня возникла проблема с приложением приложения Spring Data для работы в моей среде. Я запускаю Debian, но мои сотрудники либо используют Mac, либо Ubuntu. У меня нет ничего особенного в моих переменных окружения, и я использую ту же самую версию Java, что и другие.
Я видел это в журналах, предлагая, что это круговая справочная проблема, которая приводит к сбою создания:
nested exception is
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'flyway.CONFIGURATION_PROPERTIES':
Initialization of bean failed;
...
nested exception is
org.springframework.beans.factory.BeanCurrentlyInCreationException:
Error creating bean with name 'flyway': Requested bean is currently in
creation: Is there an unresolvable circular reference?
Таким образом, проблема заключается в том, что пролетная дорога нуждается в некоторых зависимостях, и им нужен пролет.
Вопрос в том, почему это происходит только в моей среде, а не в других? Даже в тестах с использованием H2 в памяти, я вижу проблему, поэтому ее не моя база данных виновата.
Возможно ли, что autowiring Spring каким-то образом запутался и пытается сделать что-то в неправильном порядке, так что репозиторий имеет значение null, когда он пытается его установить?
Имеет ли Spring плохо реализованная топологическая сортировка для упорядочения зависимостей?
Почему это будет плохо работать в моей среде?
Невозможно ли упорядочить путь класса к его поведению?
======================
Приложение не начнет с этой ошибки:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contentItemRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Repository interface must not be null on initialization!
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:127)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1517)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1127)
============================
Подпись ContentItemRepository:
@Repository
@Transactional
public interface ContentItemRepository extends JpaRepository<ContentItem, String>, JpaSpecificationExecutor<ContentItem> {
============================
Это работало для меня, и я смог идентифицировать фиксацию, которая сломала сборку, путем повторения всех коммитов, выполнения чистой установки mvn и попыток запустить сервер, пока не нашла дельта, которая сломала его.
"contentItemRepository", который не может быть нулевым, следующий:
@Component
+public class UrlAliasRequestConverter implements Mapper<UrlAliasRequest, UrlAlias> {
+
+ /**
+ * The content item contentItemType repository.
+ */
+ @Autowired
+ private ContentItemRepository contentItemRepository;