В дополнение к тому, что сказал @Isank, это может быть полезно в тех случаях, когда вы хотите запустить приложение (не модульные / интеграционные тесты, а, возможно, вручную), используя базу данных в памяти или просто другую базу данных.
Вы можете определить профили, и для каждого профиля вы можете иметь различные свойства приложения. Используя соглашение об именах, скажем, у вас есть три среды (dev, prod, test), вы определяете три разных файла свойств:
application-dev.properties
application-prod.properties
application-test.properties
Вам нужно поместить все эти файлы в src/main/resources/
, чтобы они получилипикет до автоматически. В качестве альтернативы, вы должны сообщить Spring-boot, где находятся файлы свойств, передав аргумент времени выполнения --spring.config.location
.
Теперь, имея все эти файлы, как вы сообщите Spring-boot, какой из них использовать?
Если ваши файлы свойств названы в соответствии с соглашением application-{profile}.properties
, то вы делаете это, передавая аргумент --spring.profiles.active={profile}
.
- Запуск файла
jar
java -jar spring-boo-app-name.jar --spring.profiles.active=prod
//this will use the application-prod.properties file
Использование задачи
bootRun
gradle
bootRun {
args '--spring.profiles.active=prod'
}
Когда вы запустите приложение весенней загрузки, вы увидите в консоли активный профиль.
![enter image description here](https://i.stack.imgur.com/Odxxj.png)