весенняя загрузка - могу ли я прочитать json файлы, помещенные в src / main / resources, средой - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть проект весенней загрузки с файлами json, размещенными средой в src/main/resources, например: src/main/resources/dataFiles/dev - содержит файлы dev json src/main/resources/dataFiles/local - содержит локальные json файлы и т. Д.

Я пытаюсь прочитать путь к файлу json в зависимости от активной среды. то есть смутно говоря, что-то вроде: String path = "dataFiles/${spring.profiles.active}/someFile.json"

  1. Есть ли способ сделать это с помощью пружинных профилей? Как?

  2. Если бы я сделал это эффективно, что бы это было?

Спасибо

1 Ответ

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

Короче говоря, да, вы можете сделать это. В вашем компоненте, который вы выполняете чтение, введите Environment

@Autowired
private Environment environment;

Затем получите профили с

String [] activeProfiles = environment.getActiveProfiles();

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

String path = "dataFiles/" + activeProfiles[0] + "/someFile.json";

. Возможно, лучшим подходом было бы создание файла свойств для каждого из ваших профилей и размещение данных. путь в профиле. например, для локального профиля создайте файл application-local.yml и поместите в него свойство, называемое datapath, для которого установлено значение "datafiles/local/". В вашем компоненте, который читает файл, вам просто нужно вставить это свойство

@Value("${datapath}")
String dataPath;

Читайте ваш файл как

String path = dataPath + "someFile.json";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...