spring-boot
Utwórz i użyj wielu plików application.properties
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