我正在使用 Spring 引导,并希望使用 starter pom 进行 Spring 集成。
在我的POM中,我有:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这拉入了 Spring Integration jar 的 4.3.6 版本和 Spring Framework jar 的 4.3.5。在我自己的一个类中,我正在尝试使用消息:
import org.springframework.integration.Message;
public Object doThings(Message<?> message) {
}
但我似乎找不到消息。在旧版本的 Spring 集成中,它位于 spring-integration-core 中.jar但在此版本中不存在。是动了还是有什么变化?我已经检查了文档,它仍然被引用,所以我认为我找错了地方 - 但核心听起来像是它应该在我的地方!我做错了什么?
Integration的一些核心概念已经在Spring Core的3.0和4.0版本之间合并,org.springframework.integration.Message
就是其中之一。
在代码示例中,替换
import org.springframework.integration.Message;
public Object doThings(Message<?> message) {
}
由
import org.springframework.messaging.Message;
public Object doThings(Message<?> message) {
}
会做这个伎俩。
有关受影响的类和接口的更详尽列表,请查看 3.0 到 4.0 Spring 集成迁移指南
使用这个版本对我来说没问题
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>4.1.9.RELEASE</version>
</dependency>
和
import org.springframework.messaging.Message;