Я пытаюсь написать веб-приложение, которое использует AWS SQS, используя Spring Cloud AWS-обработчик запросов на основе аннотаций. Вот как выглядит мой код:
XML AWS Beans:
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context" xmlns:aws-messaging="http://www.springframework.org/schema/cloud/aws/messaging" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/cloud/aws/context http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd http://www.springframework.org/schema/cloud/aws/messaging http://www.springframework.org/schema/cloud/aws/messaging/spring-cloud-aws-messaging"> <!-- Define global credentials for all the AWS clients --> <aws-context:context-credentials> <aws-context:instance-profile-credentials/> <aws-context:simple-credentials access-key="${accessKey:}" secret-key="${secretKey:}"/> </aws-context:context-credentials> <!-- Define global region --> <aws-context:context-region region="EU_WEST_1"/> <!-- Cloud Formation Stack --> <aws-context:stack-configuration stack-name="StackName"/> <aws-messaging:annotation-driven-queue-listener /> </beans>
затем я написал этот класс, у которого есть метод с аннотацией SqsListener, который выводит привет на консоль:
package com.example.demo; import org.springframework.cloud.aws.messaging.listener.annotation.SqsListener; public class AWSSQSListner { @SqsListener("queue-name") public void queueListener(Person person) { System.out.print("\"Hello\""); } }
это мой файл сборки gradle:
Gradle build file: buildscript { ext { springBootVersion = '2.0.5.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } ext { springCloudVersion = 'Finchley.SR1' } dependencies { compile('org.springframework.boot:spring-boot-starter-web-services') compile('org.springframework.cloud:spring-cloud-starter-aws') compile('org.springframework.cloud:spring-cloud-starter-aws-messaging') testCompile('org.springframework.boot:spring-boot-starter-test') } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } }
но когда я запускаю приложение, ничего не происходит, я новичок в java и весенней загрузке, есть ли что-то, что я делаю неправильно
Мне просто нужно было добавить аннотацию @Component в класс AWSSQSListner, и это сработало, также не требуется XML-компонент AWS