Связка для весеннего облачного потока не зарегистрирована.Отключает связыватель Кафки, если используется @Configuration - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь создать пользовательское связующее устройство весеннего облачного потока, но оно просто не регистрируется:

Реализация связующего:

public class DPSBinder implements Binder<SubscribableChannel, ConsumerProperties, ProducerProperties> {

private DecisionPersistenceServiceClient dpsClient;

private MessageHandler dpsClientConsumerMessageHandler = null;

public DPSBinder(DecisionPersistenceServiceClient dpsClient) {
    this.dpsClient = dpsClient;
}

@Override
public Binding<SubscribableChannel> bindConsumer(String name, String group, SubscribableChannel inboundBindTarget,
        ConsumerProperties consumerProperties) {

    return null;
}

@Override
public Binding<SubscribableChannel> bindProducer(String name, SubscribableChannel outboundBindTarget,
        ProducerProperties producerProperties) {

    switch (name) {

    case "PERSIST_POST":

        this.dpsClientConsumerMessageHandler = message -> dpsClient.persist((DPAPayload) message.getPayload());

        break;

    default:
        this.dpsClientConsumerMessageHandler = null;

    }

    if (this.dpsClientConsumerMessageHandler != null)
        this.subscribe(outboundBindTarget);

    return () -> this.dpsClientConsumerMessageHandler = null;

}

public void subscribe(SubscribableChannel outboundBindTarget) {

    outboundBindTarget.subscribe(this.dpsClientConsumerMessageHandler);
}}

класс конфигурации:

@Configuration
public class DPSBinderConfiguration {
@Bean
public DPSBinder dpsBinder(DecisionPersistenceServiceClient dpsClient) {

    return new DPSBinder(dpsClient);
}}
*Файл 1008 * spring.binders:
dps:something.something.DPSBinderConfiguration

application.yml

application.yml
spring:
 cloud:
  stream:
   bindings:
    input:
      destination: DPP_EVENTS
      group: dpp-local
      binder: kafka
    output:
      destination: PERSIST_POST
      binder: dps
  binders:
    kafka:
      type: kafka
    dps:
      type: dps

Я следовал рекомендациям весеннего облачного потока для создания привязки пользователя, но это не работает.Более того, использование @Configuration для создания beinder-компонентов отключает привязку kafka, которую я добавил в classpath.

1 Ответ

0 голосов
/ 19 февраля 2019

Я нашел проблему.На самом деле @Configuration не следует использовать там, где объявляется компонент привязки.Кроме того, в реализации My binder были некоторые логические проблемы, которые я исправил.

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