1.引入包:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws-messaging</artifactId>
</dependency>
2.在配置文件yml中定義隊列的名字,并且定義一個參數(shù)類,在這個類中定義priceChangedSqs為aws里的隊列名字。
3.配置一個QueueMessagingTemplate類引用這個sqs隊列
@Configuration
public class ApplicationConfiguration {
private final PricingProperties pricingProperties;
@Autowired
public ApplicationConfiguration(
final PricingProperties pricingProperties ) {
this.pricingProperties = pricingProperties;
}
@Bean
public QueueMessagingTemplate queueMessagingTemplate( final AmazonSQSAsync amazonSQSAsync,
final ResourceIdResolver resourceIdResolver ) {
final QueueMessagingTemplate queueMessagingTemplate = new QueueMessagingTemplate( amazonSQSAsync, resourceIdResolver );
queueMessagingTemplate.setDefaultDestinationName( pricingProperties.getPriceChangedSqs() ); // 通過第二步,獲取yml里的隊列名
return queueMessagingTemplate;
}
}
4.使用 queueMessagingTemplate 發(fā)送消息
public class PriceSendToSqs {
private final QueueMessagingTemplate queueMessagingTemplate;
public void sendToSqs( SupplierArticlePrice price ) {
ExchangeableArticlePrice exchangeableArticlePrice = new ExchangeableArticlePrice( price );
queueMessagingTemplate.convertAndSend( exchangeableArticlePrice );
}
}