spring-boot
Создание и использование нескольких файлов application.properties
Поиск…
Среда Dev и Prod с использованием разных источников данных
После успешной установки приложения Spring-Boot вся конфигурация обрабатывается в файле application.properties. Файл находится в файле src/main/resources/
.
Обычно требуется наличие базы данных позади приложения. Для разработки хорошо иметь настройку dev
и среды prod
. Используя несколько файлов application.properties
вы можете указать Spring-Boot, с какой средой должно запускаться приложение.
Хорошим примером является настройка двух баз данных. Один для dev
и один для productive
.
Для среды dev
вы можете использовать базу данных в памяти, такую как H2
. Создайте новый файл в каталоге src/main/resources/
именем application-dev.properties
. Внутри файла находится конфигурация базы данных в памяти:
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Для среды prod
мы подключимся к «реальной» базе данных, например postgreSQL
. Создайте новый файл в каталоге src/main/resources/
именем application-prod.properties
. Внутри файла находится конфигурация базы данных postgreSQL
:
spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret
В вашем файле application.properties
умолчанию вы можете установить, какой профиль активирован и используется Spring-Boot. Просто установите один атрибут внутри:
spring.profiles.active=dev
или же
spring.profiles.active=prod
Важно то , что часть после -
в application-dev.properties
идентификатор файла.
Теперь вы можете запустить приложение Spring-Boot в режиме разработки или производства, просто изменив идентификатор. База данных в памяти будет запускаться или подключиться к «реальной» базе данных. Конечно, есть также много вариантов использования нескольких файлов свойств.
Установите правильный профиль пружины, создав приложение автоматически (maven)
Создавая несколько файлов свойств для разных сред или случаев использования, иногда трудно вручную изменить значение active.profile
вправо. Но есть способ установить active.profile
в файле application.properties
при создании приложения с помощью maven-profiles
.
Допустим, в нашем приложении есть три файла свойств среды:
application-dev.properties
:
spring.profiles.active=dev
server.port=8081
application-test.properties
:
spring.profiles.active=test
server.port=8082
application-prod.properties
.
spring.profiles.active=prod
server.port=8083
Эти три файла просто отличаются портами и активным именем профиля.
В основном файле application.properties
мы устанавливаем наш профиль пружины с использованием переменной maven :
application.properties
.
spring.profiles.active=@profileActive@
После этого нам просто нужно добавить профили maven в наш pom.xml
Мы будем устанавливать профили для всех трех сред:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>dev</build.profile.id>
<profileActive>dev</profileActive>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
Теперь вы можете создать приложение с помощью maven. Если вы не установили какой-либо профиль maven, его построение по умолчанию (в этом примере это dev). Для указания нужно использовать ключевое слово maven. Ключевое слово для установки профиля в maven - это -P
за которым следует имя профиля: mvn clean install -Ptest
.
Теперь вы также можете создавать пользовательские сборки и сохранять их в своей IDE
для более быстрой сборки.
Примеры:
mvn clean install -Ptest
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 11:24:44.885 INFO 6328 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 11:24:44.886 INFO 6328 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: test
mvn clean install -Pprod
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.3.RELEASE)
2017-06-06 14:43:31.067 INFO 6932 --- [ main] com.demo.SpringBlobApplicationTests : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 14:43:31.069 INFO 6932 --- [ main] com.demo.SpringApplicationTests : The following profiles are active: prod