Функциональный компонент не может быть распознан функцией SpringJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Функциональный компонент не может быть распознан функцией Spring

Сообщение Anonymous »

У меня есть два класса конфигурации с функциональными компонентами:

Код: Выделить всё

@Configuration
public class PositionReporter {

@Bean
public Supplier reportPositions() {
return () -> new Aircraft(
null,
"SAL001",
"sqwk",
"N12345",
"SAL001",
"route",
"LJ",
"ct",
30000,
280,
440,
0,
0,
39.2979849,
-94.71921,
0.0d,
0.0d,
0.0d,
false,
true,
Instant.now(),
Instant.now(),
Instant.now()
);
}

}

Код: Выделить всё

@Configuration
@AllArgsConstructor
public class PositionRetriever {

private final AircraftRepository aircraftRepository;

@Bean
public Consumer retrievePositions() {
return aircraft -> {
aircraftRepository.deleteAll();
aircraftRepository.save(aircraft);
};
}

}
Если я не зарегистрирую их с помощью Spring.cloud.function.definition, я получу следующее предупреждение (которое абсолютно доказывает, что они распознаны как функциональные компоненты):

Код: Выделить всё

2025-09-12T18:07:42.916+02:00  WARN 6568 --- [RestApi] [           main] c.f.c.c.BeanFactoryAwareFunctionRegistry : Multiple functional beans were found [retrievePositions, reportPositions], thus can't determine default function definition. Please use 'spring.cloud.function.definition' property to explicitly define it.
Но если я их зарегистрирую, неважно, в какой комбинации следующего

Код: Выделить всё

reportPositions;retrievePositions

Код: Выделить всё

reportPositions,retrievePositions

Код: Выделить всё

reportPositions|retrievePositions

Код: Выделить всё

reportPositions
Я получу это предупреждение:

Код: Выделить всё

2025-09-12T18:09:40.596+02:00  WARN 6840 --- [RestApi] [           main] c.f.c.c.BeanFactoryAwareFunctionRegistry : Failed to locate function 'reportPositions' for function definition 'reportPositions|retrievePositions'. Returning null.
связанные свойства из моего application.yaml:

Код: Выделить всё

spring:
cloud:
function:
definition: reportPositions|retrievePositions
stream:
poller:
fixed-delay: 10000
bindings:
reportPositions-out-0:
destination: aircraftpositions
retrievePositions-in-0:
destination: aircraftpositions
group: aircraftpositions
Может ли кто-нибудь мне помочь? Меня очень расстраивает это ПРЕДУПРЕЖДАЮЩЕЕ сообщение.

Подробнее здесь: https://stackoverflow.com/questions/797 ... g-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»