Должен ли я всегда использовать базу данных в корпоративных приложениях (.war, .ear - по существу .jar) и никогда не записывать в файл? - PullRequest
0 голосов
/ 28 мая 2018

Если у меня есть файл ресурсов (mydata.txt) в папке ресурсов (настроен как другая исходная папка) моего приложения.Этот файл mydata.txt в конечном итоге будет упакован в корень файла JAR (.war) для развертывания на каком-либо сервере приложений (Tomcat, Jetty, WildFly).

Файл mydata.txt содержит некоторые важные данные, необходимые длязаявление, и этот файл должен быть приложен к заявке.

Чтобы получить файл из jar, я могу использовать getClass (). GetResourceAsStream ("/ mydata.txt") - таким образом, я получаю этот файл как InputStream.Но я не могу получить этот файл как OutputStream и записать в него.

Все решения с getClass (). GetResource () - возвращающий URL не рекомендуется, getResourceAsStream всегда рекомендуется, но он допускает только чтение,не писать / обновлять / добавлять файл.

getClass (). getProtectionDomain (). getCodeSource () решение также не рекомендуется для получения (записи) доступа к файлу.

Я мог бы создать некоторыефайл во временный каталог на сервере Tomcat (System.getProperty ("java.io.tmpdir")) и запись в него, но это бессмыслица, поскольку содержимое этого файла имеет решающее значение для приложения (записать его в tmp dir), кроме Iнужно добавить файл, а не создавать новый и записать в него.

Кроме того, Я не уверен, что запись в любой другой каталог (кроме tmp) сервера приложений - это хорошая идея (пожалуйста,поправьте меня, если я ошибаюсь).

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

1 Ответ

0 голосов
/ 28 мая 2018

Короче говоря: Да.Помимо всего того, что вы упомянули (и все правильно), самые большие проблемы:

  • одновременный доступ
  • обработка транзакций

, с которой база данных работает идеально и сфайловый подход - это просто боль в ****

. В дополнение к этому, особенно сервер приложений предоставляет вам конфигурацию подключения (и пулов) к источникам данных любого рода, что действительно удобно впроизводственная среда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...