2
如果我以這種方式定義Jms集成流程,是否有避免在處理程序中投射消息類型的方法?或者也許我應該以不同的方式實現JMS集成?彈簧集成中的消息類型安全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();
}
}
它似乎流利的建設者是不安全的,但我不知道爲什麼 –