NPE по автопроводке из зависимого проекта - PullRequest
0 голосов
/ 05 мая 2018

Это моя структура проекта,

Родительский Проект -> pom.xml (ядро подмодуля, веб, сервисы)

            core prj -->
                pom.xml
            web prj --> has core,services dependency and has ComponentScan for com.aaa.bbb
                pom.xml

            services prj --> has core, web dependency
                pom.xml

клиентский проект -> pom.xml (подмодули xxx, yyy)

    xxx --> 
        pom.xml

    yyy --> has core dependency 
        pom.xml

xxx и yyy jars используются в основном проекте, а война строится веб-проектом.

когда я автоматически подключаю сервисы / репозитории в проекте yyy, я получаю NPE для сервисов / репозиториев.

Может ли кто-нибудь сообщить мне, как я могу автоматически связать сервисы / репозитории в проекте yyy из сервисов / репозиториев основного проекта?

Спасибо,

1 Ответ

0 голосов
/ 05 мая 2018

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

  1. Если у вас есть доступ к коду библиотеки (думаю, это ваш случай):

    1.1 Добавьте аннотацию, чтобы отметить, какой класс является бобом (используя @Component, @Service, ...)

    1.2 В вашем классе конфигурации (класс, который имеет @Configuration или @SpringBootApplication или @ComponentScan ...), добавьте путь к xxx и yyy проекту в classpath

    @Configuration
    @ComponentScan("com.my.package.xxx,com.my.package.yyy")
    public class YourApplication
    
  2. Если у вас нет доступа к коду библиотеки

    2.1 В вашем классе конфигурации создайте аннотированный метод @Bean и инициализируйте ваш компонент здесь.

    @Bean
    public XRepository getXRepository() {
     return new XRepositoryImpl(); // Here is your initialization logic
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...