使用spring-boot-starter-integration时找不到org.springframework.integration.Message

时间:2017-01-18 10:48:48

标签: java spring maven spring-boot spring-integration

我使用Spring启动,并希望将启动程序pom用于Spring Integration。

在我的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>

这提供了4.3.6版本的Spring Integration jar和4.3.5的Spring Framework jar。在我自己的一个课程中,我尝试使用Message:

import org.springframework.integration.Message;

public Object doThings(Message<?> message) {
}

但我似乎无法找到Message。在旧版本的Spring集成中,它是在spring-integration-core.jar中,但在这个版本中并不存在。它有移动还是有变化?我已经检查了文档并且它仍然被引用,所以我假设我在错误的地方寻找 - 但核心听起来应该是它应该对我来说的地方!我做错了什么?

2 个答案:

答案 0 :(得分:2)

Spring Integration的一些核心概念已经在版本3.0和4.0之间的Spring Core中合并,而org.springframework.integration.Message就是其中之一。

在您的代码示例中,替换

import org.springframework.integration.Message;

public Object doThings(Message<?> message) {
}

通过

import org.springframework.messaging.Message;

public Object doThings(Message<?> message) {
}

会做到这一点。

有关受影响的类和接口的更详尽列表,请查看the 3.0 to 4.0 Spring Integration migration guide

答案 1 :(得分:0)

我可以使用此版本

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>4.1.9.RELEASE</version>
</dependency>

import org.springframework.messaging.Message;