2
このようにJms統合フローを定義すると、ハンドラでメッセージタイプのキャストを避ける方法がありますか?あるいは、私はJMS統合を別の方法で実装する必要がありますか?Spring統合におけるメッセージタイプの安全性DSL
@EnableJms
@EnableIntegration
@Configuration
public class JmsInboundFlow {
private Logger logger = LoggerFactory.getLogger(JmsInboundFlow.class);
@Autowired
public ConnectionFactory jmsConnectionFactory;
@Autowired
private JmsMessageMyPojoHandlerService handlerService;
@Bean
public IntegrationFlow jmsMessageDrivenFlow() {
return IntegrationFlows.from(messageDrivenChannelAdapter(jmsConnectionFactory).destination("queuName")
.errorChannel(jmsMyPojoErrorChannel()))
.transform(Transformers.fromJson(MyPojo.class))
.handle(message -> handlerService.addEvent((Message<MyPojo>) message))
.get();
}
@Bean
public MessageChannel jmsMyPojoErrorChannel() {
return MessageChannels.direct("customErrorChannel")
.get();
}
@Bean
public IntegrationFlow customErrorFlow() {
return IntegrationFlows.from(jmsMyPojoErrorChannel())
.handle(msg -> logger.error("Error processing JMS message " + msg.getPayload()))
.get();
}
}
流暢なビルダーはタイプセーフではないようですが、私はその理由を知らない –