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 bemerkenswerte Änderung vom SDK for Java 1.x zum SDK for Java 2.x ist die Änderung des Paketnamens. Paketnamen beginnen mit software.amazon.awssdk in SDK 2.x, wohingegen das SDK 1.x verwendet. com.amazonaws

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

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 hierfür ist, wenn Sie serverseitig AWS Lambda arbeiten. Dies wurde im Abschnitt Ein Apache Maven-Projekt einrichten weiter oben in diesem Handbuch gezeigt.

Anmerkung

Verschiedene Paketnamen im 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 im 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 vom SDK.

<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.16.1</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änderliche 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();

Setter- und Getter-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

SDK for Java Java-Bibliotheken und -Dienstprogramme

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

Name der Version 1.12.x Name der Version 2.x Seit Version in 2.x
DynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiter Waiter 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S 3 TransferManager 2.19.0
EC2-Metadaten-Client EC2-Metadaten-Client 2.19.29
S3-URI-Parser S3-URI-Parser 2.20.41
IAM Policy Builder IAM-Richtliniengenerator 2.20.126
Clientseitige Pufferung von Amazon SQS Automatische Batchverarbeitung von Anfragen noch nicht veröffentlicht
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 dem SDK for Java 2.x funktionieren.

Name, der mit Version 2.x des SDK for Java verwendet wird 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