

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 für Java 1.x und 2.x
<a name="migration-whats-different"></a>

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

## Änderung des Paketnamens
<a name="mig-diff-package-name-change"></a>

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](setup-project-maven.md#modules-dependencies) 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 beginnt`com.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
<a name="adding-v2"></a>

Maven ist die empfohlene Methode zur Verwaltung von Abhängigkeiten bei der AWS SDK für 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. 

**Example**  

```
<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](migration-side-by-side.md), wenn Sie Ihr Projekt auf Version 2.x migrieren.

## Unveränderlich POJOs
<a name="immutable-classes"></a>

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.

**Example Aktualisieren eines Anfrageobjekts in 1.x**  

```
DescribeAlarmsRequest request = new DescribeAlarmsRequest();
DescribeAlarmsResult response = cw.describeAlarms(request);

request.setNextToken(response.getNextToken());
```

**Example 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
<a name="setter-getter-methods"></a>

In Version AWS SDK für 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.

**Example der Verwendung von Setter-Methoden in 1.x**  

```
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
        		.withRegion("us-east-1")
        		.build();
```

**Example der Verwendung von Setter-Methoden in 2.x**  

```
DynamoDbClient client = DynamoDbClient.builder()
        		.region(Region.US_EAST_1)
        		.build();
```

**Example der Verwendung von Getter-Methoden in 1.x**  

```
String token = request.getNextToken();
```

**Example der Verwendung von Getter-Methoden in 2.x**  

```
String token = request.nextToken();
```

## Klassennamen modellieren
<a name="model-classname-changes"></a>

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

**Example von Klassennamen, die eine Antwort in Version 1 darstellen**  

```
CreateApiKeyResult
AllocateAddressResult
```

**Example von Klassennamen, die eine Antwort in v2 darstellen**  

```
CreateApiKeyResponse
AllocateAddressResponse
```

## Migrationsstatus von Bibliotheken und Dienstprogrammen
<a name="migration-libraries-utilities"></a>

### SDK for Java Java-Bibliotheken und -Dienstprogramme
<a name="migration-java-sdk-libs-utils"></a>

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 | 
| --- | --- | --- | 
| Dynamo DBMapper | [DynamoDbEnhancedClient](dynamodb-enhanced-client.md) | 2.12.0 | 
| Waiter | [Waiter](waiters.md) | 2.15.0 | 
| CloudFrontUrlSigner, CloudFrontCookieSigner | [CloudFrontUtilities](https://aws.amazon.com/blogs/developer/amazon-cloudfront-signed-urls-and-cookies-are-now-supported-in-aws-sdk-for-java-2-x/) | 2.18.33 | 
| TransferManager | [S3TransferManager](transfer-manager.md) | 2.19.0 | 
| EC2-Metadaten-Client |  [EC2-Metadaten-Client](examples-ec2-IMDS.md)  | 2.19.29 | 
| S3-URI-Parser |  [S3-URI-Parser](https://aws.amazon.com/blogs/devops/s3-uri-parsing-is-now-available-in-aws-sdk-for-java-2-x/)  | 2.20.41 | 
| IAM-Richtlinienersteller | [IAM-Richtliniengenerator](feature-iam-policy-builder.md) | 2.20.126 | 
| S3-Ereignisbenachrichtigungen | [S3-Ereignisbenachrichtigungen](examples-s3-event-notifications.md#s3-event-notification-read) | 2.25.11  | 
| Clientseitige Pufferung von Amazon SQS | [Automatische Batching-API für Anfragen für Amazon SQS](sqs-auto-batch.md) | 2.28.0 | 
| Fortschritts-Listener | Fortschritts-Listener | [noch nicht veröffentlicht](https://github.com/aws/aws-sdk-java-v2/issues/25) | 

### Verwandte Bibliotheken
<a name="migration-other-sdks"></a>

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](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html)  |  3.0.0 1  | 
| [AWS Datenbankverschlüsselungs-SDK für DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) | 3.0.0 2 | 

#### 1 Amazon S3 S3-Verschlüsselungsclient
<a name="migration-s3-encryption-sdk"></a>

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>
```

#### 2AWS Datenbankverschlüsselungs-SDK für DynamoDB
<a name="migration-ddb-encryption-sdk"></a>

Das AWS Database Encryption SDK für DynamoDB ist für V2 unter Verwendung 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>
```

Informationen zur Verschlüsselungsbibliothek für DynamoDB, die mit Version 1 des Java SDK funktioniert, finden Sie im [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/java.html) (*Amazon DynamoDB Encryption Client for Java*) und in. [GitHub](https://github.com/aws/aws-dynamodb-encryption-java)

[Weitere Informationen zur DynamoDB-Verschlüsselungsbibliothek, die mit Version 2 des Java SDK kompatibel ist, finden Sie im [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) und in der GitHub Quelle.](https://github.com/aws/aws-database-encryption-sdk-dynamodb)

Migrationsinformationen zur Verschlüsselungsbibliothek finden Sie im [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java-migrate.html).

### Migrationsdetails für Bibliotheken und Dienstprogramme
<a name="migrate-libs-utils-details"></a>
+ [Übertragungsmanager](migration-s3-transfer-manager.md)
+ [EC2-Metadaten-Hilfsprogramm](migration-imds.md)
+ [CloudFrontvorsignieren](migration-cloudfront-presigning.md)
+ [S3-URI-Analyse](migration-s3-uri-parser.md)
+ [DynamoDB mapping/document APIs](migration-ddb-mapper.md) 
+ [IAM-Richtlinienersteller](migration-iam-policy-builder.md)
+ [S3-Ereignisbenachrichtigungen](migration-s3-event-notification.md)
+ Veröffentlichung von SDK-Metriken ([1.x-Dokumentation](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html), [2.x-Dokumentation](metrics.md))