В моем приложении Spring Boot у меня есть следующий входящий шлюз (Java DSL):
@Bean
public IntegrationFlow upperCaseFlow() {
return IntegrationFlows
.from(
Http.inboundGateway("/conversions/upperCase")
.requestMapping(r -> r.methods(HttpMethod.POST).consumes("text/plain"))
.requestPayloadType(String.class)
.id("upperCaseGateway")
)
.<String>handle((p, h) -> p.toUpperCase())
.get();
}
.id ("upperCaseGateway") , я полагаю, являетсячасть, в которой "id" устанавливается для шлюза.
С другой стороны, я пытаюсь реализовать другой входящий HTTP-шлюз в немного другом стиле DSL следующим образом:
@Bean
public IntegrationFlow httpGetFlow() {
return IntegrationFlows.from(httpGetGate()).channel("httpGetChannel").handle("personEndpoint", "get").get();
}
@Bean
public MessagingGatewaySupport httpGetGate() {
HttpRequestHandlingMessagingGateway handler = new HttpRequestHandlingMessagingGateway();
handler.setRequestMapping(createMapping(new HttpMethod[]{HttpMethod.GET}, "/persons/{personId}"));
handler.setPayloadExpression(parser().parseExpression("#pathVariables.personId"));
handler.setHeaderMapper(headerMapper());
return handler;
}
@Bean
public HeaderMapper<HttpHeaders> headerMapper() {
return new DefaultHttpHeaderMapper();
}
Мой вопрос: Во втором стиле создания входящего шлюза http, как мне установить идентификатор для шлюза со значением " getPersonsGateway "?Я вижу, что в первом стиле это возможно с помощью простого .id ("upperCaseGateway") вызова.
Любое руководство будет с благодарностью!
С уважением,Бхарат