簡體   English   中英

我在哪里可以找到SqsListener

[英]Where can I find SqsListener

我們正在嘗試使用spring-cloud-aws從AWS SQS接收消息

我們希望使用注釋接收消息。 在春季文檔中 ,它令人困惑。

下面,他們聲明使用MessageMapping和QueueMessageHandler注釋。

注釋驅動的偵聽器端點是偵聽SQS消息的最簡單方法。 只需使用MessageMapping注釋方法,QueueMessageHandler就會將消息路由到帶注釋的方法。

但是在示例中,使用了@SQSListener。

@SqsListener("queueName")
public void queueListener(Person person) {
    // ...
}

我搜索了@SqsListener,發現它正在這里的測試類中使用。 所以我們嘗試導入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的消息,但至少依賴是解決。

我使用的是1.1.0.RELEASE,這是我的依賴項:

compile("org.springframework.boot:spring-boot-starter:1.3.5.RELEASE")
compile("org.springframework.cloud:spring-cloud-starter-aws-messaging:1.1.0.RELEASE")

我嘗試了兩個注釋@SqsListener和@MessageMapping都工作正常。 SqsListener是MessageMapping注釋的特化,它添加了一個附加屬性,即刪除策略。

我猜測文檔必須更新,我也很困惑。

現在@SqsListener可用1.1.0.RELEASE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM