@Profile не работает с шлюзом сообщений - PullRequest
0 голосов
/ 06 декабря 2018

В моем приложении интеграции я определяю простой шлюз следующим образом:

@MessagingGateway
@Profile(value = { "export" })
public interface ExportingOutboundGateway {

     @Gateway(requestChannel = "exportChannel")
     void send(RequestInfo request);
}

Если я запускаю это загрузочное приложение Spring с spring.profiles.active = export объявлено в application.properties, компонент-шлюз не может быть создан

Есть ли ошибка в определении компонента-шлюза?Как это исправить?

1 Ответ

0 голосов
/ 06 декабря 2018

Это ошибка в IntegrationComponentScanRegistrar.Когда мы сканируем интерфейсы @MessagingGateway, мы не учитываем Environment из контекста приложения, а внутренний ClassPathScanningCandidateComponentProvider просто использует стандартный по умолчанию, где у нас нет этого активного профиля.

КакОбходной путь Я предлагаю сделать так:

@Bean
@Profile("export")
public AnnotationGatewayProxyFactoryBean exportingOutboundGateway() {
    return new AnnotationGatewayProxyFactoryBean(ExportingOutboundGateway.class);
}

...

public interface ExportingOutboundGateway {

    @Gateway(requestChannel = "exportChannel")
    void send(String request);

}

JIRA по этому вопросу: https://jira.spring.io/browse/INT-4565

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...