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