2013-03-04 6 views
0

У меня есть большой файл CSV, который необходимо разобрать, чтобы отправлять запросы на запрос REST API. Тело запроса сообщения - это строка json. Первая строка в файле имеет ключи, а следующие строки - значения, например.Данные кэша для почтовых запросов при запуске сервера

FirstName, LastName
Джон Доу
Марк Твен

Так что пост тело будет что-то вроде { "FirstName": "Джон", "LastName": "Doe"}

Это файл будет использоваться для создания тестовых данных для разработчиков. Я предоставлю простую страницу, где разработчики могут ввести номер учетной записи и нажать «Отправить». Цель состоит в том, чтобы проанализировать этот файл и сделать POST-запросы службе REST API.

Я хочу, чтобы избежать чтения файла каждый раз, когда приходит запрос, но кэшировать эти запросы при запуске, чтобы избежать трудностей чтения/разбора файла каждый раз, так что каждый раз, когда запрос приходит в тело запроса, просто требуется для извлечения из кеша. Является ли кэширование этих запросов POST при запуске правильным путем?

Также может потребоваться добавить больше CSV-файлов, чтобы иметь множество данных. Каким будет способ масштабирования?

Формат (имена ключей) файла CSV будет таким же, чтобы каждый файл мог быть проанализирован таким же образом.

ответ

0

Он может быть реализован в N числе способов, основанных на ваших требованиях, вот простой пример. Вы можете сохранить класс как

class Contact{ 
    private String firstName; 
    private String lastName; 
} 

и в вашем другом классе, который удерживает это значение

class RestEnterpriseService{ 

    List<Contact> contacts; 

    @PostConstruct 
    init(){ 
    contacts = readFromJSON("JSON URL"); 
    } 
} 
0

Это может быть сделано несколькими способами.

Если вы используете контейнер Spring Framework или Java EE, вы можете использовать решение стиля PostConstruct в качестве @AvinashSingh, упомянутого выше.

Если вы находитесь в каком-либо контейнере Servlet, вы можете выполнять задачи запуска с помощью прослушивателя сервлетов или другими способами.

Также вы можете реализовать его самостоятельно, есть так много способов, которыми вы можете это сделать. Подобно использованию защитной переменной, чтобы определить, кэшируется ли ваш список contacts; или использовать навыки, которые, как шаблон дизайна Singleton.