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.awssdk
groupId, 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>