我们正在尝试使用spring-cloud-aws从AWS SQS接收消息
我们希望使用注释接收消息。在春季documentation中,这令人困惑。
下面,他们声明要使用MessageMapping和QueueMessageHandler批注。
注释驱动的侦听器端点是侦听的最简单方法
在SQS消息上。使用MessageMapping和
QueueMessageHandler将消息路由到带注释的方法。
但是在示例中,使用了@SQSListener。
@SqsListener("queueName")
public void queueListener(Person person) {
// ...
}
我搜索了@SqsListener,发现它正在诸如here之类的测试类中使用。因此,我们尝试导入
org.springframework.cloud.aws.messaging.listener.annotation.SqsListener
。不幸的是,此注释类在最新版本中不可用。我使用的
org.springframework.cloud.aws.messaging.listener.annotation.SqsListener
是正确的吗?还是在发行版中尚不存在?如果未发布,我可以使用@MessageMapping
接收来自SQS的消息吗? 最佳答案
它似乎未包含在Spring Cloud AWS的1.0.4版本中,但是使用1.1.0.RC1时我能够成功导入SqsListener。
您需要添加:
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-aws:1.1.0.RC1'
mavenBom "org.springframework.boot:spring-boot-starter-parent:1.3.3.RELEASE"
}
此外,还需要添加消息传递依赖性(并且我也包括了执行器):
dependencies {
compile("org.springframework.cloud:spring-cloud-starter-aws")
compile("org.springframework.cloud:spring-cloud-aws-messaging")
compile("org.springframework.boot:spring-boot-starter-actuator")
}
请注意,我还没有测试它是否可以实际使用SQS消息,但至少可以解决依赖关系。