Was ist der Unterschied zwischen AWS SDK for Java 1.x und 2.x - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Was ist der Unterschied zwischen AWS SDK for Java 1.x und 2.x

In diesem Abschnitt werden die wichtigsten Änderungen beschrieben, die Sie beachten sollten, wenn Sie eine Anwendung von AWS SDK for Java Version 1.x auf Version 2.x konvertieren.

Änderung des Paketnamens

Eine spürbare Änderung von der SDK für Java 1.x zur SDK für Java 2.x ist die Änderung des Paketnamens. Paketnamen beginnen mit software.amazon.awssdk SDK 2.x, wohingegen SDK 1.x verwendet. com.amazonaws

Dieselben Namen unterscheiden Maven-Artefakte von SDK 1.x bis 2.x. SDK Maven-Artefakte für SDK 2.x verwenden die software.amazon.awssdkgroupId, wohingegen 1.x die verwendet. SDK com.amazonaws groupId

Es gibt einige Fälle, in denen Ihr Code eine com.amazonaws Abhängigkeit für ein Projekt erfordert, das ansonsten nur SDK 2.x-Artefakte verwendet. Ein Beispiel dafür ist, wenn Sie serverseitig AWS Lambda arbeiten. Dies wurde im Abschnitt Ein Apache Maven-Projekt einrichten weiter oben in diesem Handbuch gezeigt.

Anmerkung

Mehrere Paketnamen in der Version SDK 1.x enthalten. v2 Die Verwendung von bedeutet v2 in diesem Fall normalerweise, dass der Code im Paket darauf ausgelegt ist, mit Version 2 des Dienstes zu funktionieren.

Da der vollständige Paketname mit beginntcom.amazonaws, handelt es sich um SDK 1.x-Komponenten. Beispiele für diese Paketnamen in der Version SDK 1.x sind:

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Version 2.x zu Ihrem Projekt hinzufügen

Maven ist die empfohlene Methode zur Verwaltung von Abhängigkeiten bei der AWS SDK for Java Verwendung von 2.x. Um Ihrem Projekt Komponenten der Version 2.x hinzuzufügen, aktualisieren Sie Ihre pom.xml Datei mit einer Abhängigkeit von. SDK

<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>dynamodb</artifactId> </dependency> </dependencies>

Sie können auch Version 1.x und 2.x side-by-side verwenden, wenn Sie Ihr Projekt auf Version 2.x migrieren.

Unveränderlich POJOs

Clients und Operationsanforderungs- und Antwortobjekte sind jetzt unveränderlich und können nach der Erstellung nicht geändert werden. Zur Wiederverwendung einer Anforderungs- oder Antwortvariable müssen Sie ein neues Objekt erstellen, das sie ihr zuweisen können.

Beispiel Aktualisieren eines Anfrageobjekts in 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
Beispiel Aktualisieren eines Anfrageobjekts in 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Bessere und bessere Methoden

In Version AWS SDK for Java 2.x enthalten die Namen der Setter-Methoden das Präfix or nicht. set with Zum Beispiel *.withEndpoint() ist jetzt. *.endpoint()

Getter-Methodennamen verwenden das get Präfix nicht.

Beispiel der Verwendung von Setter-Methoden in 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
Beispiel der Verwendung von Setter-Methoden in 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
Beispiel der Verwendung von Getter-Methoden in 1.x
String token = request.getNextToken();
Beispiel der Verwendung von Getter-Methoden in 2.x
String token = request.nextToken();

Klassennamen modellieren

Modellklassennamen, die Dienstantworten repräsentieren, enden mit Response in v2 statt mit denenResult, die v1 verwendet.

Beispiel von Klassennamen, die eine Antwort in Version 1 darstellen
CreateApiKeyResult AllocateAddressResult
Beispiel von Klassennamen, die eine Antwort in v2 darstellen
CreateApiKeyResponse AllocateAddressResponse

Migrationsstatus von Bibliotheken und Dienstprogrammen

SDKfür Java-Bibliotheken und -Dienstprogramme

In der folgenden Tabelle ist der Migrationsstatus der Bibliotheken und Dienstprogramme SDK für Java aufgeführt.

Name der Version 1.12.x Name der Version 2.x Seit Version in 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiter Waiter 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18,33
TransferManager S 3 TransferManager 2.19.0
EC2Metadaten-Client EC2Metadaten-Client 2.19.29
S3-Parser URI S3-Parser URI 2.20.41
IAMRichtlinienersteller IAMRichtlinienersteller 2.20.126
S3-Ereignis-Benachrichtigungen S3-Ereignisbenachrichtigungen 2.25.11
SQSClientseitige Pufferung von Amazon Automatisches Batching von Anfragen API für Amazon SQS 2.28.0
Fortschritts-Listener Fortschritts-Listener noch nicht veröffentlicht

Verwandte Bibliotheken

In der folgenden Tabelle sind Bibliotheken aufgeführt, die separat veröffentlicht wurden, aber mit Java 2.x funktionieren. SDK

Name, der mit Version 2.x von für Java verwendet wird SDK Seit Version
Amazon S3 S3-Verschlüsselungsclient 3.0.0 1
AWS Database Encryption Client für DynamoDB 3.0.0 2

1 Der Verschlüsselungsclient für Amazon S3 ist mithilfe der folgenden Maven-Abhängigkeit verfügbar.

<dependency> <groupId>software.amazon.encryption.s3</groupId> <artifactId>amazon-s3-encryption-client-java</artifactId> <version>3.x</version> </dependency>

2 Der AWS Database Encryption Client für DynamoDB ist mithilfe der folgenden Maven-Abhängigkeit verfügbar.

<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>

Einzelheiten zur Migration für Bibliotheken und Dienstprogramme