Szukaj…


Środowisko deweloperskie i produkcyjne przy użyciu różnych źródeł danych

Po pomyślnym skonfigurowaniu aplikacji Spring-Boot cała konfiguracja jest obsługiwana w pliku application.properties. Plik znajdziesz na src/main/resources/ .

Zwykle za aplikacją potrzebna jest baza danych. Dla rozwoju dobrze jest mieć konfigurację środowiska dev i prod . Korzystając z wielu plików application.properties , możesz powiedzieć Spring-Boot, w jakim środowisku aplikacja powinna się uruchomić.

Dobrym przykładem jest konfiguracja dwóch baz danych. Jeden dla dev i jeden dla productive .

W środowisku dev można użyć bazy danych w pamięci, takiej jak H2 . Utwórz nowy plik w katalogu src/main/resources/ o nazwie application-dev.properties . Wewnątrz pliku znajduje się konfiguracja bazy danych w pamięci:

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

W przypadku środowiska prod połączymy się z „prawdziwą” bazą danych, na przykład postgreSQL . Utwórz nowy plik w katalogu src/main/resources/ o nazwie application-prod.properties . Wewnątrz pliku znajduje się konfiguracja bazy danych postgreSQL :

spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret

W domyślnym pliku application.properties możesz teraz ustawić, który profil jest aktywowany i używany przez Spring-Boot. Wystarczy ustawić jeden atrybut w środku:

spring.profiles.active=dev

lub

spring.profiles.active=prod

Ważne jest to, że część po - w application-dev.properties jest identyfikatorem pliku.

Teraz możesz uruchomić aplikację Spring-Boot w trybie programistycznym lub produkcyjnym, zmieniając tylko identyfikator. Uruchomi się baza danych w pamięci lub połączenie z „prawdziwą” bazą danych. Oczywiście istnieje wiele innych przypadków użycia, aby mieć wiele plików właściwości.

Ustaw odpowiedni profil sprężynowy, automatycznie budując aplikację (maven)

Tworząc wiele plików właściwości dla różnych środowisk lub przypadków użycia, czasami trudno jest ręcznie zmienić wartość active.profile na właściwy. Istnieje jednak sposób ustawienia active.profile w pliku application.properties podczas budowania aplikacji przy użyciu maven-profiles .

Załóżmy, że w naszej aplikacji są trzy pliki właściwości środowisk:

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

Te trzy pliki różnią się po prostu portem i nazwą aktywnego profilu.

W głównym pliku application.properties ustawiamy nasz profil wiosenny za pomocą zmiennej maven :

application.properties .

spring.profiles.active=@profileActive@

Następnie wystarczy dodać profile maven do naszego pom.xml profile dla wszystkich trzech środowisk:

 <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>

Możesz teraz zbudować aplikację za pomocą maven. Jeśli nie ustawisz żadnego profilu maven, budujesz domyślny (w tym przykładzie jest to dev). Aby określić, musisz użyć słowa kluczowego maven. mvn clean install -Ptest kluczowym do ustawienia profilu w maven jest -P bezpośrednio po nazwie profilu: mvn clean install -Ptest .

Teraz możesz także tworzyć niestandardowe kompilacje i zapisywać je w swoim IDE celu szybszej kompilacji.

Przykłady:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow