Чтение подкаталогов каталога в ресурсах пути к классам с помощью Spring Boot - PullRequest
0 голосов
/ 09 апреля 2020

Я пытался читать подкаталоги (имена каталогов) каталога в ресурсах моего пути к классам, используя Spring Boot с фрагментом, приведенным ниже.

    public List<File> getSubdirectories() {
    File file = ResourceUtils.getFile("classpath:/database/scripts");
    return Arrays.stream(file.listFiles()).filter(File::isDirectory).map(File::getFileName)
            .collect(Collectors.toList());
    }

Теперь это будет хорошо работать, когда мы запустим этот код из IDE. Но когда мы собираем это приложение в виде jar-файла и запускаем его оттуда, оно выдает FileNotFoundException .

. Я также попытался загрузить каталог в качестве ресурса пути к классам. Но мне не повезло.

Я сейчас использую Java 8. Так что большинство из решений Java 7 не сработает, я думаю. Есть ли другой способ решить эту проблему?

1 Ответ

0 голосов
/ 09 апреля 2020

Согласно Spring документация ResourceUtils должны использоваться внутри структуры

Попробуйте вместо этого использовать Resource:

@Value("classpath:database/scripts")
Resource directories;

В качестве альтернативы, вы можете использовать загрузчик ресурсов:

@Autowired
ResourceLoader resourceLoader;
...
public Resource loadDirectories() {
    return resourceLoader.getResource(
      "classpath:database/scripts");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...