Компиляция микросервиса, модуля и ошибок: точка внедрения имеет следующие аннотации: - PullRequest
0 голосов
/ 13 июля 2020

Я весь день пытался понять, но не могу понять свою проблему.

У меня 1 пружинный модуль (https://spring.io/guides/gs/multi-module/) [У меня также есть JPA во вспомогательном модуле ] и 2 микросервиса (A и B).

В микросервисе A я попадаю в @Autowired CountryRepository (который расширяется от JpaRepository) и который работает очень хорошо, SpringBootApplication (scanBasePackages = "**") с, I получить доступ к моим данным, и я могу скомпилировать.

На микросервисе B я сделал то же самое, мне удалось получить доступ к своим данным, но их невозможно скомпилировать:

****************************
FAILED TO START APPLICATION
****************************

Description:

Field countryRepository in * required a bean named 'entityManagerFactory' that could not be found.

The injection point has the following annotations:
        - @ org.springframework.beans.factory.annotation.Autowired (required = true)


Action:

Consider defining a bean named 'entityManagerFactory' in your configuration.

Я не могу понять или найти ошибка, как разблокировать себя, я ищу снова и снова, но я не могу понять, почему микросервис B не хочет компилироваться.

Я использую POM Parent, и я осторожно разместил следующий порядок: *

<modules>
<module>sub module </module>
<module> microservice A </module>
<module> microservice B </module>
</modules>

Итак, я взламываю, не слишком понимая, и иногда у меня есть разные сообщения, но всегда компиляция, которая терпит неудачу

Конкретно, можно использовать репозитории субмодуль в микросервисе A и B?

Спасибо за внимание и помощь

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Я взглянул на ваше репо и обнаружил, что некоторые вещи отсутствуют

В вашем CountryRepository. java class

@Repository 
public interface CountryRepository extends JpaRepository<Country, Long> {
}

@ Аннотации репозитория отсутствует, вам необходимо добавьте это

Затем в главном классе обслуживания A и услуге B вы должны добавить, как показано ниже

@SpringBootApplication
@EnableJpaRepository("com.submodule.commun.modelandjpa.Repository")
public class ParentApplication {

public static void main(String[] args) {
    SpringApplication.run(ParentApplication.class, args);
}

}

Вот и все ..

0 голосов
/ 14 июля 2020

Да, вы можете использовать репозитории подмодулей.

Вы должны использовать @EnableJpaRepository в своем основном классе и указать там имя базового пакета.

Вот и все, это подойдет трюк

...