Короче говоря, да, вы можете сделать это. В вашем компоненте, который вы выполняете чтение, введите 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";