0

У меня есть приложение API Servlet (Jersey2 + Jax-rs), работающее в Azure App Service.как правильно закодировать с помощью таблицы хранения Azure sdk для сервлета Java

Этот 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); 

ли это плохая идея?

Пожалуйста, можете ли вы дать мне какой-нибудь ответ?

BTW Я уже посмотрел,

Java Static vs Instance

Java: when to use static methods

Но до сих пор не могу найти.

ответ

0

По моему опыту, я думаю, что шаблон проектирования для использования хранилища таблиц Azure очень похож на ORM для РСУБД, но, похоже, больше нет необходимости рассматривать оптимизацию производительности, потому что Azure Java SDK завернул связанные API REST.

Так что, на мой взгляд, используя одноэлементный образец для объявления объекта для 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.