Функция Spring Cloud Stream не распознана

У меня есть потоковое приложение Spring Boot Kafka. После обновления до SB3 Spring.cloud.function.definition больше не распознается.

Я включил журналы отладки и помог. Я вижу эти сообщения в журналах:

      Multiple functional beans were found [myEvents, sendToDlqAndContinue], thus can't determine default function definition. Please use 'spring.cloud.function.definition' property to explicitly define it. 

Это моеapplication.yml:

      spring:
  application:
    name: @project.artifactId@
  cloud:
    config:
      name: my-app
    stream:
      default:
        producer:
          useNativeEncoding: true
      function:
        definition:myEvents
        ineligible-definitions: sendToDlqAndContinue

Вот какие зависимости у меня есть:

      
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>3.1.5</version>
    </parent>
<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
        </dependency>
</dependencies>

Я попытался отладить класс Cloudstream Kafka, который сообщает об ошибке, BeanFactoryAwareFuntionRegistry.java.

и обнаружил, чтоthis.applicationContext.getEnvironment().getProperty(FunctionProperties.FUNCTION_DEFINITION, "");является ""

Он содержитineligible-definitionsУ меня есть в yml, но нетdefinition

Любые подсказки высоко ценятся. Может быть, в SpringBoot 3 есть какие-то изменения, связанные с облачными потоками? Какая-то недостающая зависимость?

Обновлять

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

      <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>

Приложение теперь использует сообщения, но зависимость не регистрирует неподдерживаемые или перенесенные свойства. Как я могу узнать, какое свойство удалено/перенесено??

Я не нашел официальной документации об изменениях в новом выпуске.

0 ответов