0

Azure App Service で実行されているサーブレット (Jersey2 + Jax-rs) API アプリがあります。

この API は、Azure テーブル ストレージからデータを取得し、クライアント側に送り返します。

そこで、Azure Storage SDK を実装するための "静的メソッド" と "インスタンス" のどちらを選択するのがよいでしょうか。

たとえば、私のコードは次のようになります。

public class AzureTableStorage {

    private static final String storageConnectionString = "DefaultEndpointsProtocol=http;" + "AccountName=;"
            + "AccountKey=";

    public static CloudTable getTable() {
        try {

            CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

            CloudTableClient tableClient = storageAccount.createCloudTableClient();

            CloudTable cloudTable = tableClient.getTableReference("");

            return cloudTable;

        } catch (Exception e) {

            e.printStackTrace();

            return null;
        }
    }

    public static Entity getEntity(String rowKey) {
        // TODO Auto-generated method stub

        try {


            TableOperation operation = TableOperation.retrieve("", "", xxx.class);


            Entity entity = AzureTableStorage.getTable().execute(operation).getResultAsType();
            // Output the entity.

            return entity;

        } catch (Exception e) {
            // Output the stack trace.
            e.printStackTrace();
            return null;
        }

    }

}

とのような使用

AzureTableStorage.getEntity(rowKey);

これは悪い考えですか?

誰か答えを教えてください。

ところで、私はすでに見ましたが、

Java 静的 vs インスタンス

Java: 静的メソッドを使用する場合

しかし、まだ見つけることができません。

4

1 に答える 1

0

私の経験上、Azure Table Storage を使用するための設計パターンは RDBMS の ORM と非常に似ていると思いますが、Azure Java SDK が関連する REST API をラップしたため、パフォーマンスの最適化を考慮する必要がなくなったようです。

したがって、私の考えでは、シングルトン パターンを使用して、バッチ タスクやスケジュール タスクなどのいくつかのシナリオでstaticオブジェクトを宣言します。CloudClientまた、コンテナをプールとして作成してCloudClientオブジェクトの数を制御Clientし、プールからインスタンスを取得して、作成、読み取り、更新、および削除を含むユーザー セッションによる操作を実行します。

参照できると思われるベスト プラクティスとして、GitHub にいくつかの公式サンプルがあります。https://github.com/Azure/azure-storage-java/tree/master/microsoft-azure-storage-samples/src/を参照してくださいcom/microsoft/azure/storage/tableおよびhttps://github.com/Azure-Samples/storage-table-java-getting-started

于 2016-07-13T11:26:33.263 に答える