Spis treści | Czysty kod
- Budowanie i uruchamianie aplikacji
- Pierwsze uruchomienie
Poznanie Spring Boot DevTool
Jak sama nazwa wskazuje, DevTools dostarcza programistom Springa kilka przydatnych narzędzi w czasie rozwoju. Wśród nich są:
- Automatyczny restart aplikacji po zmianie kodu
- Automatyczne odświeżanie przeglądarki w przypadku zmiany zasobów zapisanych w przeglądarce (takich jak szablony,
- JavaScript, arkusze stylów itd.) ulegają zmianie
- Automatyczne wyłączenie cache’u szablonów
- Wbudowana konsola H2, jeśli używana jest baza danych H2
Ważne jest, aby zrozumieć, że DevTools nie jest wtyczką do IDE, ani nie wymaga abyś używał konkretnego IDE. Działa równie dobrze w Spring Tool Suite, IntelliJ IDEA, i NetBeans. Ponadto, ponieważ jest przeznaczony tylko do celów rozwojowych, jest wystarczająco inteligentny, aby wyłączyć się podczas wdrażania w warunkach produkcyjnych. (Omówimy Jak to robi, omówimy w kolejnym rozdziale, kiedy będziesz wdrażał swoją aplikację).
Na razie skupmy się na najbardziej użytecznych funkcjach Spring Boot DevTools, zaczynając od automatyczny restart aplikacji.
AUTOMATYCZNE PONOWNE URUCHOMIENIE APLIKACJI
Z DevTools jako częścią projektu, będziesz mógł dokonywać zmian w kodzie Java i właściwości w projekcie i zobaczyć, jak te zmiany są stosowane po krótkiej chwili. DevTools monitoruje zmiany, a gdy widzi, że coś się zmieniło, automatycznie uruchamia ponownie aplikację. Dokładniej, gdy DevTools jest w grze, aplikacja jest ładowana do dwóch oddzielnych loaderów klas w maszynie wirtualnej Java (JVM). Jeden loader klas jest ładowany z Twój kod Java, pliki właściwości i prawie wszystko, co znajduje się w ścieżce src/main/ projektu. Są to elementy, które prawdopodobnie będą często zmieniane. Druga klasa
jest ładowana z bibliotekami zależności, które prawdopodobnie nie będą zmieniać się tak często. Gdy zostanie wykryta zmiana, DevTools przeładowuje tylko ten loader klas, który zawiera Twój kod projektu i restartuje kontekst aplikacji Spring, ale pozostawia inny program ładujący klasy i maszynę JVM nienaruszone. i JVM nietknięte. Choć subtelna, strategia ta pozwala na niewielkie skrócenie czasu potrzebnego do uruchomienia aplikacji.
Wadą tej strategii jest to, że zmiany w zależnościach nie będą dostępne podczas automatycznych restartach. Dzieje się tak dlatego, że program ładujący klasy zawierający biblioteki zależności nie jest automatycznie przeładowywany. Oznacza to, że za każdym razem gdy dodajemy, zmieniamy lub usuwamy zależność w specyfikacji kompilacji, będziesz musiał wykonać twardy restart aplikacji, aby te zmiany zaczęły obowiązywać
Pomocne linki