哪个 Spring Cloud AWS 版本应与 Spring Boot 3 一起使用?

Don*_*ote 6 java amazon-sqs spring-boot spring-cloud spring-cloud-aws

我正在尝试SqsListener工作,但 Spring Boot 3 做不到,它根本没有收到任何东西。当我将 Spring Boot 版本更改回 2.X 时,一切都工作正常。我使用的是 Spring Cloud 2.4.2 版本:

...
    <dependency>
            <groupId>io.awspring.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-messaging</artifactId>
        </dependency>
</dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.awspring.cloud</groupId>
                <artifactId>spring-cloud-aws-dependencies</artifactId>
                <version>2.4.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

您能给我指出正确的 spring cloud 版本吗?我需要使用里程碑版本吗?

Fro*_*ist 8

它不起作用,因为 spring-cloud-starter-aws-messaging 的 2.4.2 版本依赖于spring.factoriesSpring Boot 自动配置,但对此的支持已在 Spring Boot 3.0.0 中删除。请参阅https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#auto-configuration-files

您可以通过创建以下文件来启用自动配置

src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

# content
io.awspring.cloud.autoconfigure.messaging.SqsAutoConfiguration
Run Code Online (Sandbox Code Playgroud)

但是,它可能无论如何都无法工作,因为 spring-cloud-aws 还依赖于 Spring Messaging 中的类,这些类在 Spring 6 中已弃用并删除(在 Spring Boot 3 中使用),特别是org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver.

您必须等待 Spring Cloud AWS 支持 Spring Boot 3。他们正在开发 Spring Cloud AWS 3.0.0,但我认为它还没有发布日期。https://github.com/awspring/spring-cloud-aws