Как лучше всего обработать файл json в приложении весенней загрузки? - PullRequest
0 голосов
/ 06 марта 2020

У меня есть 3 json файлов с общим размером 150 МБ, и у него есть некоторые данные. Локально я сохранял его в папке ресурсов и читал после запуска приложения и записи в mongodb, если коллекция не существует.

При развертывании этого в облаке я вижу ноль, потому что файлы перемещены в BOOT-INF / занятия в банке. Мне нужны предложения по нижеуказанным запросам.

  1. Как написать общий метод, который поддерживает локальный запуск чтения файла или запуск в облаке? Как я сталкиваюсь с проблемами при работе в облаке? Я попытался, как показано ниже

    @Bean
        @Profile("cloud")
        public Resource[] getCloudResources() throws IOException {
            Resource[] resources = applicationContext.getResources("classpath*:*.json");
            return resources;
        }
    
        @Bean
        @Profile("!cloud")
        public Resource[] getNonCloudResources() throws IOException {
            Resource[] resources = applicationContext.getResources("*.json");
            return resources;
        }
    
  2. Кажется, это не лучшая практика для хранения этих файлов в папке ресурсов. Каков альтернативный подход согласно стандарту 12 факторов? Я развертываю в PCF

  3. Пожалуйста, предложите любой другой подход, если вы сталкивались с подобным вариантом использования.

1 Ответ

0 голосов
/ 06 марта 2020
  1. Обычный метод - это метод, принимающий параметр InputStream и считывающий файл из него. Если файл находится в classpath, вы можете использовать getResourceAsStream ( здесь ), чтобы получить InputStream. Если нет, вы можете использовать соответствующие методы облачного API, которые возвращают InputStream ресурсу, хранящемуся в облаке.
  2. Да, это правильно. Файлы не должны быть частью артефакта приложения. Приложение должно принять путь к файлу в качестве настраиваемого свойства (в application.properties для весенней загрузки) и прочитать файл из него.
  3. Хорошей идеей будет приложение, читающее файл при запуске. Хотя это добавляет небольшую задержку к запуску, все должно быть в порядке, поскольку вы не хотите, чтобы приложение обслуживало запросы, если оно не загрузило данные.
  4. Что касается чтения json объектов из файла обеспокоен, вы можете взглянуть на библиотеку Джексона. Здесь - документация, а здесь - пример.
...