我在哪里可以找到SqsListener

时间:2016-03-16 13:42:00

标签: spring amazon-web-services spring-cloud amazon-sqs

我们正在尝试使用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的消息吗?

3 个答案:

答案 0 :(得分:2)

它似乎没有包含在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的消息,但至少依赖性正在解决。

答案 1 :(得分:2)

我使用的是1.1.0.RELEASE,这是我拥有的依赖项:

let subViews = self.scrollViewContent.subviews
        for subview in subViews{
            subview.removeFromSuperview()
        }

我尝试了两个注释@SqsListener和@MessageMapping都工作正常。 SqsListener是MessageMapping注释的特化,它添加了一个附加属性,即删除策略。

我猜测文档必须更新,我也很困惑。

答案 2 :(得分:0)

现在@SqsListener可用1.1.0.RELEASE。