Запись и чтение в локальный файл с Java RS

Я написал небольшое веб-приложение, которое позволяет клиенту POST-значения, а затем получить сумму этих значений, используя сервер Glassfish в Intellij. Я хочу, чтобы сумма сохранялась при перезапусках службы. В настоящее время сумма отслеживается с помощью ресурса Singleton, поэтому ее можно использовать совместно с несколькими различными классами. Есть ли способ, которым я могу написать и прочитать файл в локальном каталоге? Что-то вроде:

src:
     Singleton
     Rest of classes
res:
     PersistentDataFile

1 ответ

Да, Вы можете записать данные в локальный файл, но их не должно быть в resources каталог. Потому что, если вы это в resources каталог, он станет частью вашего WAR файл и позже, если вы развернете обновленный WAR файл, этот файл будет переопределен.

Сейчас есть 2 решения -

1) Храните данные в файле, размещенном за пределами вашего веб-приложения. Тем не менее, вам нужно справиться multi-threading и вы должны написать код, чтобы избежать чтения / записи файла более чем на один thread то есть в более чем 1 request,

2) Рекомендуемый подход - для обработки таких ситуаций хранение таких данных в database Рекомендуемый подход. В этом подходе также необходимо обрабатывать изменение данных более чем одним thread, Тем не менее, такие ситуации могут быть легко решены путем написания соответствующих SQL запрос, по которому чтение и запись могут быть выполнены в одном query (не всегда возможно) или поддерживать некоторые version столбец или last modified timestamp столбец в базе данных.

Другие вопросы по тегам