Поиск…


Среда 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow