Исключить некоторые компоненты микросервиса - PullRequest
0 голосов
/ 07 сентября 2018

Я - новая пчела и использую микросервисы (Spring Boot, Spring Cloud), в которых я пытаюсь использовать файл ресурсов микросервиса в другом. Для этого мне нужно сканировать этот модуль в другом с помощью ComponentScan.

Как у меня есть модуль администратора, в котором мне нужно автоматически подключить главный ресурс, который находится в основном модуле. Поэтому я использую:

@ComponentScan(basePackages = {"com.example.admin","com.example.main"}

Я использовал это в AdminApplication файл. Теперь он также показывает контроллеры основного модуля в Admin, которые мне не нужны. Я гуглю и применяю:

  @ComponentScan(basePackages =
      {"com.example.admin","com.example.main"},
              excludeFilters = {@ComponentScan.Filter(type = ASSIGNABLE_TYPE,
                      value = {
                              UserController.class,
                              CustomerController.class,
                              SchoolController.class
                      })})

Но все равно отображаются контроллеры основного модуля в модуле администратора. Как на самом деле это исключить? Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Спасибо за ваши предложения. Наконец я получил ответ.

Swashbuckle построен поверх встроенного слоя метаданных WebApi - ApiExplorer. Если вы украсили контроллер или действие следующим атрибутом:

[ApiExplorerSettings(IgnoreApi=true)]
public class MyController : ApiController

тогда это в конечном итоге приведет к тому, что весь выход контроллера или отдельного действия будет исключен из вывода Swagger.

0 голосов
/ 07 сентября 2018

С JavaConfig (@Configuration) и аннотацией @Profile вы можете настроить тонкую комбинацию классов «в и из» в зависимости от ваших потребностей, я думаю. НО вам придется отключить @ComponentScan в вашем основном классе (возможно, не используйте @SpringBootApplication, так как он встраивает @ComponentScan).

ИМХО, вам лучше использовать модули / приложения, создавая общие ресурсы в виде отдельного JAR, а в зависимости от него каждый сервис - как отдельный модуль Maven

...