Profile w Spring Boot
Profile w Spring Boot
Profilowanie to mechanizm, który na podstawie jednej wersji kodu źródłowego aplikacji umożliwia tworzyć jej różne wersje. Główna konfiguracja zawarta jest w pliku application.properties. Przejdźmy do testowania profili. Utwórzmy nowy projekt Spring Boota gdzie w katalogu ./resources powinny znaleźć się oprócz application.properties dodatkowe pliki:
application.properties:
spring.profiles.active = dev server.port = 8081 spring.application.name = master profile
application-dev.properties:
spring.application.name = dev profile
oraz:
application-prod.properties:
spring.application.name = prod profile
W głównym pliku – application.properties zamieszczamy informacje o tym który profil jest aktywny. Wartości które są wpisane w tym profilu są obowiązujące, ale jeśli zostaną nadpisane w innym profilu który jest obecnie aktywny to nie mają zastosowania. Oznacza to, że nadpisane wartości w aktualnie aktywnym profilu mają pierwszeństwo.
Utwórzmy kontroler typu REST do testów:
@RestController public class RestControllerProfileTest { @Value("${spring.application.name}") private String appName; @GetMapping("/app") public String getInjectedValue() { return appName; } }
Aplikacja startuje na porcie 8081:
2019-10-09 11:49:36.651 INFO 1280 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http)
Wynik po wejściu na adres:
http://localhost:8081/app
to:
dev profile
Drugą opcją na ustawienie profilu który ma być obecnie aktywny jest dodanie tej informacji:
-Dspring.profiles.active=dev
do parametrów maszyny wirtualnej. Z poziomu Intellij Idea robimy to w następujący sposób:
Jeśli są ustawione dwie opcje czyli jest dodany parametr do VM z poziomu Intellij Idea oraz w pliku application.properties jest wpis który ustawia aktywny profil to priorytet ma parametr dodany do VM.
Leave a comment