SpringBootApplication scanBasePackages не читает подпакеты - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть общая библиотека, опубликованная на Nexus, с идентификатором пакета

x.xx.common

содержит подпакеты общих интерфейсов прокси для симулированных клиентов

Проект, использующий эту библиотеку, имеет идентификатор пакета.

x.xx.account 
x.xx.device

каждый из этих проектов имеет свой класс приложения в корне

x.xx.account.AppClass
x.xx.device.AppClass

каждый из этих классов имеет

@SpringBootApplication(scanBasePackages = {"x.xx"})

по каким-то причинам оба проекта не видят ни одного прокси-интерфейса в подпакетах

x.xx.common.proxy
x.xx.common.configuration

Я пытался переместить прокси-интерфейсы прямо под основным пакетом

x.xx.common

но тоже не получилось

Параметру 0 конструктора в x.xx.common.service.impl.AuditServiceImpl требуется компонент типа 'x.xx.common.LogProxy', который не найден.

эта ошибка выдается для каждого интерфейсного прокси

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Добавьте аннотацию к вашему классу подпакетов, который вы хотите отсканировать. Добавьте аннотации типа @Component, @Service или @Repository соответственно в класс соответственно. Для аннотации: @SpringBootApplication(scanBasePackages = {"x.xx"})

Предположим, что в подпакете есть класс с именем Abc x.xx, поэтому добавьте аннотацию @Component к классу.

@Component class Abc{}

Это поможет прочитать класс подпакетов.

Чтобы узнать больше о разнице между вышеупомянутыми аннотациями: В чем разница между аннотациями @Component, @Repository & @Service в Spring?

0 голосов
/ 07 апреля 2019

Я понял это, очевидно, AppClass @EnableFeignClients нужно добавить к нему и базовый класс.

Так что для тех, у кого такая же проблема, моя AppClass теперь имеет следующую аннотацию

@SpringBootApplication(scanBasePackages = {"x.xx"})
@EnableFeignClients(basePackages= {"x.xx"})
public class AppClass {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...