Announcing Spring Cloud AWS 3.0.0

Releases | Spencer Gibb | May 02, 2023 | ...

This is a guest post from the maintainers of Spring Cloud AWS.

Spring Cloud AWS 3.0.0

Spring Cloud AWS 3.0 is a recent release of the Spring Cloud AWS project. This version represents a complete rewrite of the library using AWS SDK v2 for Java. Since this has required a major refactoring, we took it as an opportunity to revisit all the assumptions and integrations modules. As a result, we've produced a library that is lightweight, flexible, causes less headache and provides simple to use abstractions.

Spring Cloud AWS 3.0 has been developed with following principles in mind:

  • Spring Boot “native” developer experience - sensible defaults, highly customizable
  • Minimal startup time overhead
  • Integration module independent of each other
  • Kotlin friendly (@Nullable annotations)
  • Testing as a first class citizen - Spring Cloud AWS uses Localstack in its own tests and we made the library easy to use with Localstack.

Some key features of the release

  • Compatible with Spring Boot 3.0
  • Built on the top of AWS SDK V2 for Java
  • Completely re-written SQS integration module
  • New DynamoDB integration

Documentation

We strongly recommend reading the Spring Cloud AWS Reference Documentation to learn more.

Additionally, you can explore sample applications for several integration modules at the Spring Cloud AWS GitHub repository

Changes

Find below a high level list of changes in each integration module:

Core

  • Simplified credentials, region and AWS client configuration and customization
  • Removed XML configuration support and @EnableXXX annotations
  • Introduced STS Credentials support
  • Kotlin's support improved with nullability annotations

SQS

  • Complete rewrite based on battle tested Spring Kafka architecture
  • Async listeners
  • Batch listeners
  • FIFO queues support

S3

In S3 we have introduced new interesting features such as:

  • S3 Object Metadata support
  • S3Template: convenient methods to upload & download files, as well as persisting Java objects to S3
  • Cross-region S3 client
  • Automatic content type resolution (supports 817 content types)
  • Creating S3 Signed URLs
  • Creating & Deleting buckets
  • Multiple S3 OutputStream implementations:
    • InMemoryBufferingS3OutputStream
    • DiskBufferingS3OutputStream
    • TransferManagerS3OutputStream

SNS

  • SnsTemplate and SnsOperations provide convenient API for sending notifications to SNS
  • SnsSmsTemplate provides convenient API for sending text messages (SMS) to phone numbers

Secrets Manager

  • Loading secretes is now only possible with spring.config.import
  • Support for JSON, plain text, and binary secrets
  • Support for auto-reloading secrets
  • Secrets Manager property sources now support custom prefixes

Parameter Store

  • Loading secretes is now only possible with spring.config.import
  • Support for auto-reloading properties

DynamoDB

  • DynamoDbTemplate high level API to use DynamoDB built on the top of DynamoDB Enhanced Client
  • Auto-configuration of AWS DAX (DynamoDB Accelerator)

Parameter Store

  • Loading properties is now only possible with spring.config.import=aws-parameterstore.
  • Support for auto-reload introduced
  • Simplified using custom SsmClient

CloudWatch

  • Auto-configuration for micrometer-registry-cloudwatch2

Missing integrations

Spring Cloud AWS 3.0 does not include integrations for RDS, ElastiCache, EC2 and CloudFormation.

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all