我有這些版本的遺留代碼(Spring 版本:3.2.1.RELEASE 和 Spring Integration 版本 2.2.3.RELEASE)。我想將spring集成的所有xml配置遷移到java配置。在開始遷移之前,我正在做一些測試,但我正在努力解決@ServiceActivator哪個不起作用。我的例子是:@Configuration@ImportResource("classpath*:integration-config.xml")public static class IntegrationConfig { @Bean public MessageChannel queueChannel() { return new QueueChannel(5); } @Bean public MessageChannel pubSubChannel() { PublishSubscribeChannel publishSubscribeChannel = new PublishSubscribeChannel(); publishSubscribeChannel.subscribe(new MessageHandler() { @Override public void handleMessage(Message<?> message) throws MessagingException { System.out.println("First handler :" + message.getPayload()); } }); publishSubscribeChannel.subscribe(new MessageHandler() { @Override public void handleMessage(Message<?> message) throws MessagingException { System.out.println("Second handler :" + message.getPayload()); } }); return publishSubscribeChannel; }}和 :@MessageEndpointpublic static class MessageEndpointDefintion { @ServiceActivator(inputChannel = "queueChannel") public void queueActivator(String payload) { System.out.println("Payload from queue : " + payload); } @ServiceActivator(inputChannel = "pubSubChannel") public void pubSubActivator(Message<String> message) { System.out.println("Payload from pub-sub :" + message.getPayload()); }}當我在頻道中發送一些消息時,@ServiceActivator會調用任何消息。如此處所示:添加@EnableIntegration(自 Spring Integration 版本 4 起可用)可以解決問題,但在我的情況下,我使用的是不提供此注釋的版本 2.2.3。如果他們在此版本中提供此注釋,我認為我們可以使用它,但如何使用?其他問題,我可以使用相同版本的 Spring (3.2.1) 將 Spring Integration 版本升級到 4 嗎?謝謝
1 回答

UYOU
TA貢獻1878條經驗 獲得超4個贊
您缺少將其添加到 XML 配置中的信息:
<int:annotation-config/>
<xsd:element name="annotation-config">
<xsd:annotation>
<xsd:documentation>
Enables annotation support for Message Endpoints.
</xsd:documentation>
</xsd:annotation>
不幸的是,舊版本不能只使用簡單的注釋。整個 Spring Integration 引擎由 XML 觸發。
不:如果不升級 Spring Framework,就無法升級 Spring Integration。
添加回答
舉報
0/150
提交
取消