Компиляция микросервиса, модуля и ошибок: точка внедрения имеет следующие аннотации:
Я весь день пытался понять, но не могу понять свою проблему.
У меня есть 1 весенний модуль (https://spring.io/guides/gs/multi-module/) [у меня также есть JPA в подмодуле] и 2 микросервиса (A и B).
В микросервисе A я попадаю в @Autowired CountryRepository (который простирается от JpaRepository) и который работает очень хорошо, SpringBootApplication (scanBasePackages = "**"), я получаю доступ к своим данным и могу компилировать.
На микросервисе 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.
Не могу понять или найти ошибку, как себя разблокировать, ищу снова и снова, но не могу понять, почему микросервис Б не хочет компилироваться.
Я использую POM Parent, и я осторожно разместил следующий порядок:
<modules>
<module>sub module </module>
<module> microservice A </module>
<module> microservice B </module>
</modules>
Поэтому я взламываю, не слишком разбираясь, и иногда у меня разные сообщения, но всегда компиляция, которая не работает
Конкретно, можно ли использовать репозитории подмодуля в микросервисах A и B?
Спасибо за внимание и помощь
2 ответа
Да, вы можете использовать репозитории подмодулей.
Вы должны использовать @EnableJpaRepository в своем основном классе и указать там имя базового пакета.
Вот и все, это поможет
Я просмотрел ваше репо и обнаружил, что кое-чего не хватает
В вашем классе CountryRepository.java
@Repository
public interface CountryRepository extends JpaRepository<Country, Long> {
}
Аннотации @Repository отсутствует, вам нужно добавить это
Затем в вашем основном классе обслуживания A и услуге B вы должны добавить, как показано ниже
@SpringBootApplication
@EnableJpaRepository("com.submodule.commun.modelandjpa.Repository")
public class ParentApplication {
public static void main(String[] args) {
SpringApplication.run(ParentApplication.class, args);
}
}
Вот и все..