java - 有人可以提供 spring-integration-aws SQS 用法的示例吗?

标签 java spring amazon-web-services spring-integration spring-integration-aws

Herespring-integration-aws 项目。他们提供了有关 Inbound Channle 适配器的示例:

@SpringBootApplication
public static class MyConfiguration {

    @Autowired
    private AmazonSQSAsync amazonSqs;

    @Bean
    public PollableChannel inputChannel() {
        return new QueueChannel();
    }

    @Bean
    public MessageProducer sqsMessageDrivenChannelAdapter() {
        SqsMessageDrivenChannelAdapter adapter = new SqsMessageDrivenChannelAdapter(this.amazonSqs, "myQueue");
        adapter.setOutputChannel(inputChannel());
        return adapter;
    }
}

好了,ChannelSqsMessageDrivenChannelAdapter 都定义好了,但是接下来呢?假设我有这样的 spring bean:

import com.amazonaws.services.sqs.model.Message;

@Component
public class MyComponent {
    public void onMessage(Message message) throws Exception {
        //handle sqs message
    }
} 
  1. 如何告诉 spring 将所有消息从myQueue 传递给这个 组件?
  2. 是否有任何额外的配置来处理消息 一?例如在收到消息 SQS 后将它们标记为 处理并且它们对其他客户端不可见,所以它是 只需要获取一条消息,然后处理并获取下一条消息。做 此行为默认启用?

最佳答案

您应该阅读 Spring Integration Reference Manual .

@Component
public class MyComponent {

    @ServiceActivator(inputChannel = "inputChannel")
    public void onMessage(Message message) throws Exception {
        //handle sqs message
    }

} 

关于java - 有人可以提供 spring-integration-aws SQS 用法的示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43732681/

相关文章:

java - IntelliJ IDEA 建议用 foreach 方法替换 for 循环。我应该尽可能这样做吗?

java - JpaRepository 不更新实体

amazon-web-services - 如果并行状态中的某个状态失败,如何继续执行 aws 中的步骤函数?

javascript - AWS 从客户端上传文件到 S3

java - jackson XML 2.9.0 : @JacksonXmlElementWrapper not working with @JsonCreator & @JsonProperty constructor

java - java中如何按空格和一些特殊字符分割字符串

java - 如何在不是已配置 bean 的类中 Autowiring bean?

python - 带有 cors 的 flask 的 zappa 自定义授权器

java - 遍历AccessibilityNodeInfo时Android辅助功能服务中的无限递归

mysql - 无法使用 Gradle 和 Spring Boot 加载驱动程序类 : com. mysql.jdbc.Driver