Co to jest Spring Boot?
Java Spring Boot to narzędzie typu open source, które ułatwia tworzenie mikrousług i aplikacji internetowych przy użyciu platform opartych na języku Java. Każda dyskusja na temat definicji platformy Spring Boot musi zaczynać się od środowiska Java — jednego z najpopularniejszych i najczęściej używanych języków programowania oraz platformy obliczeniowej do tworzenia aplikacji. Deweloperzy na całym świecie rozpoczynają swoją przygodę z kodowaniem od nauki języka Java. Elastyczny i przyjazny dla użytkownika język Java jest ulubionym rozwiązaniem dla deweloperów różnych aplikacji — od mediów społecznościowych, aplikacji internetowych i gier po aplikacje sieciowe i aplikacje dla przedsiębiorstw.
Język Java i platforma Spring
Język Java może być prosty w użyciu i łatwiejszy w nauce niż inne języki, ale złożoność tworzenia, debugowania i wdrażania aplikacji języka Java wzrosła do zawrotnego poziomu. Wynika to z wykładniczej liczby zmiennych, z którymi mają do czynienia współcześni deweloperzy podczas opracowywania aplikacji internetowych i mobilnych na potrzeby popularnych nowoczesnych technologii, takich jak przesyłanie strumieniowe muzyki lub mobilne aplikacje do płatności gotówkowych. Deweloper piszący podstawową aplikację biznesową musi teraz radzić sobie z wieloma bibliotekami, wtyczkami, rejestrowaniem błędów i obsługą bibliotek, integracjami z usługami internetowymi oraz wieloma językami, takimi jak C#, Java, HTML i inne. To zrozumiałe, że istnieje nieustanny popyt na wszelkie narzędzia, które usprawnią opracowywanie aplikacji w języku Java, oszczędzając czas i pieniądze deweloperom.
Tutaj pojawiają się platformy aplikacji — duże zbiory gotowego kodu, którego deweloperzy mogą używać i dodawać do własnego kodu, zgodnie z potrzebami. Te platformy ułatwiają deweloperom obsługę niemal każdego wymagania — niezależnie od tego, czy tworzą oni aplikacje mobilne i internetowe, czy pracują ze środowiskami klasycznymi i interfejsami API. Platformy sprawiają, że tworzenie aplikacji jest szybsze, łatwiejsze i bezpieczniejsze dzięki udostępnieniu narzędzi i kodu do wielokrotnego użytku, co ułatwia łączenie różnych elementów projektu tworzenia oprogramowania.
W tym miejscu pojawia się platforma Spring: Spring to projekt typu open source, który zapewnia usprawnione, modularne podejście do tworzenia aplikacji za pomocą języka Java. Rodzina projektów Spring pojawiła się w 2003 roku w odpowiedzi na złożoność wczesnego programowania w języku Java. Zapewnia ona wsparcie przy tworzeniu aplikacji tego języka. Nazwa Spring zwykle odnosi się do samej platformy aplikacji albo do całej grupy projektów lub modułów. Java Spring Boot to jeden z modułów utworzonych jako rozszerzenie platformy Spring.
Po przedstawieniu sposobu współpracy platform Spring, Spring Boot i Java możemy zdefiniować platformę Spring Boot — jest to narzędzie, które usprawnia i przyspiesza opracowywanie aplikacji internetowych i mikrousług w ramach platformy Spring w języku Java.
Ze względu na użycie języka i/lub platformy Java czasami jest ona określana jako "Java Spring Boot", "platforma Java Spring" lub "platforma Spring Boot". Istnieje jednak więcej platform innych firm dla języka Java, na przykład Play i Hibernate, dlatego dokładniejszymi określeniami są "Spring" i "Spring Boot".
Ogólne omówienie podstaw języka Java zawiera artykuł Co to jest Java?
Jaka jest różnica między platformami Spring i Spring Boot?
Jak wspomniano wcześniej, platforma Spring to oparta na języku Java platforma aplikacji typu open source, która obejmuje wiele mniejszych projektów. Inne popularne projekty platformy Spring to między innymi Spring Data, Spring Cloud i Spring Security. Aby zrozumieć różnicę między platformą Spring Boot i platformą Spring, należy pamiętać, że mogą istnieć różnice w podstawowych możliwościach, ale wszystkie składniki należą do rodziny Spring.
Aby w pełni zrozumieć różnice między platformami Spring i Spring Boot, najpierw należy zdefiniować kilka kluczowych terminów.
Co to są mikrousługi?
Co to jest wstrzykiwanie zależności?
Wstrzykiwanie zależności (DI) jest techniką projektowania używaną do uzyskania inwersji kontroli (IoC). W programowaniu obiektowym, na przykład w języku Java, obiekty zależne od innych obiektów są nazywane zależnościami. Zazwyczaj obiekt odbierający lub zależny jest nazywany klientem, a obiekt, od którego jest zależny klient, jest nazywany usługą. Dlatego wstrzykiwanie zależności przekazuje usługę do klienta lub "wstrzykuje" zależność przy użyciu kodu nazywanego iniektorem. Wstrzykiwanie zależności eliminuje potrzebę określenia przez klienta usługi, która ma być używana — zamiast klienta robi to iniektor.
Co to jest stosowanie konwencji zamiast konfiguracji?
Stosowanie konwencji zamiast konfiguracji, czasami określane jako kodowanie według konwencji, to koncepcja używana na platformach aplikacji w celu zmniejszenia liczby decyzji, które musi podjąć deweloper. Jest ona zgodna z zasadą "Nie powtarzaj się", polegającą na unikaniu pisania nadmiarowego kodu. Kodowanie według konwencji dąży do utrzymania elastyczności, jednocześnie umożliwiając deweloperowi pisanie kodu tylko dla istotnych aspektów tworzonej aplikacji. Jeśli żądane zachowanie aplikacji jest zgodne z ustalonymi konwencjami, aplikacja będzie po prostu działać w sposób domyślny, bez konieczności pisania plików konfiguracji. Deweloper będzie musiał jawnie pisać pliki konfiguracji tylko wtedy, gdy żądane zachowanie nie będzie zgodne z "konwencjami".
Porównanie platform Spring i Spring Boot
Spring | Spring Boot | |
---|---|---|
Co to jest? | Platforma aplikacji internetowych typu open source oparta na języku Java. | Rozszerzenie (moduł) bazujące na platformie Spring. |
Do czego służy? | Zapewnia elastyczne, całkowicie konfigurowalne środowisko z użyciem narzędzi i bibliotek gotowego kodu do tworzenia niestandardowych, luźno powiązanych aplikacji internetowych. | Umożliwia tworzenie autonomicznych aplikacji platformy Spring, które można uruchamiać natychmiast bez konieczności dodawania adnotacji i konfiguracji XML czy pisania dużej ilości dodatkowego kodu. |
Kiedy jej używać? | Używaj platformy Spring, jeśli masz następujące wymagania:
| Używaj platformy Spring Boot, jeśli masz następujące wymagania:
|
Jaka jest jej kluczowa funkcja? | Wstrzykiwanie zależności | Konfiguracja automatyczna |
Czy zawiera serwery osadzone? | Nie. Na platformie Spring należy jawnie konfigurować serwery. | Tak, platforma Spring Boot jest dostarczana z wbudowanymi serwerami HTTP, takimi jak Tomcat i Jetty. |
Jak jest konfigurowana? | Platforma Spring zapewnia elastyczność, ale jej konfigurację należy tworzyć ręcznie. | Platforma Spring Boot automatycznie konfiguruje platformę Spring i dodatkowe platformy innych firm według domyślnej zasady "Konwencje zamiast konfiguracji". |
Czy muszę wiedzieć, jak pracować z kodem XML? | Na platformie Spring wymagana jest znajomość konfiguracji XML. | Platforma Spring Boot nie wymaga konfiguracji XML. |
Czy istnieją narzędzia interfejsu wiersza polecenia do tworzenia/testowania aplikacji? | Platforma Spring nie udostępnia narzędzi interfejsu wiersza polecenia do tworzenia i testowania aplikacji. | Jako moduł platformy Spring, platforma Spring Boot zawiera narzędzie interfejsu wiersza polecenia do tworzenia i testowania aplikacji opartych na platformie Spring. |
Czy jest stosowane podejście ukierunkowane, czy nieukierunkowane? | Nieukierunkowane* | Ukierunkowane* |
*Porównanie platform z podejściem ukierunkowanym i nieukierunkowanym
Chociaż słowo "ukierunkowane" może brzmieć negatywnie, zarówno ukierunkowane podejście platformy Spring Boot, jak i nieukierunkowane podejście platformy Spring mają swoje zalety.
Ukierunkowane podejście
Ukierunkowane podejście zakłada, że istnieje jedna metoda, która jest znacznie łatwiejsza niż wszystkie pozostałe. Zgodnie z projektem oprogramowanie ogranicza projektantów, zachęcając ich do wykonywania czynności w określony sposób.
Zapewnia to dobrze ukierunkowaną ścieżkę — najlepsze rozwiązania, które będą działać dla większości osób w większości sytuacji. Aplikacja jest pisana w ścisłej zgodności z tymi najlepszymi rozwiązaniami i powszechnymi konwencjami. Ukierunkowane podejście znacznie ułatwia współpracę i uzyskiwanie pomocy dotyczącej projektu programistycznego — inni deweloperzy, którzy mają doświadczenie z daną platformą, będą mogli szybko zapoznać się z nową aplikacją i od razu dołączyć do współpracy.
Nieukierunkowane podejście
Nieukierunkowane podejście jest stosowane, jeśli wszystkie rozwiązania wymagają mniej więcej takiej samej ilości wysiłku lub złożoności. Zakłada ono, że nie istnieje jedna właściwa metoda rozwiązywania problemu. Zamiast tego udostępnia ono elastyczne narzędzia, których można użyć do rozwiązania problemu na wiele sposobów. Zaletą platform z nieukierunkowanym podejściem jest duża elastyczność programowania oraz zapewnienie większej kontroli deweloperom. Główną wadą takiej dużej elastyczności jest to, że deweloper musi podjąć więcej decyzji oraz może być konieczne napisanie większej ilości kodu, ponieważ platforma jest tak otwarta i nieukierunkowana.
Funkcje i korzyści oferowane przez platformę Spring Boot
Na koniec najciekawszy temat — możliwości platformy Java Spring Boot wykraczające poza platformę Spring. Platforma Spring Boot zapewnia łatwiejszą i szybszą ścieżkę konfigurowania i uruchamiania aplikacji. Eliminuje to uciążliwość konfiguracji wymaganej w przypadku większości aplikacji opartych na platformie Spring. Deweloperzy mogą od razu zacząć korzystać z platformy Spring Boot bez konieczności uczenia się bazowej platformy Spring.
Poniżej opisano, jak funkcje platformy Spring Boot pomagają usprawnić zadania programistyczne w języku Java. Oto niektóre kluczowe funkcje platformy Spring Boot:
-
Aplikacje autonomiczne — platforma Spring Boot ułatwia tworzenie aplikacji, które nie są powiązane z określoną platformą i mogą działać lokalnie na urządzeniu bez połączenia internetowego lub innych zainstalowanych usług.
-
Serwery osadzone — platforma Spring Boot umożliwia bezpośrednie osadzanie serwerów, takich jak Tomcat, Jetty lub Undertow.
-
Ukierunkowane podejście — platforma Spring Boot upraszcza konfiguracje kompilacji, zapewniając ukierunkowane zależności początkowe.
-
Konfiguracja automatyczna — platforma Spring Boot automatycznie konfiguruje platformę Spring i dodatkowe biblioteki innych firm, gdy tylko jest to możliwe.
-
Funkcje gotowe do użytku produkcyjnego — platforma Spring Boot udostępnia funkcje gotowe do użytku produkcyjnego, takie jak metryki, kontrole kondycji i konfiguracja zewnętrzna.
Zalety platformy Spring Boot
Platforma Spring Boot:
-
Skraca czas opracowywania i zwiększa produktywność — platforma Spring Boot znacznie ułatwia tworzenie aplikacji opartych na platformie Spring przy użyciu języka Java. Jej ukierunkowane podejście do platformy Spring skraca czas poświęcony na podejmowanie decyzji i powtarzalne zadania, zwalniając więcej czasu na tworzenie i testowanie aplikacji.
-
Zmniejsza konieczność pisania kodu standardowego, adnotacji i konfiguracji XML — deweloperzy nie muszą generować kodu ani konfigurować kodu XML, a nawet nie muszą uczyć się platformy Spring, jeśli nie chcą.
-
Integruje aplikacje z rodziny projektów Spring — aplikacje platformy Spring Boot bezproblemowo integrują się z innymi projektami w ekosystemie platformy Spring, takimi jak Spring Data, Spring Cloud i Spring Security, a także z innymi zaufanymi usługami w chmurze, takimi jak Microsoft Azure Spring Cloud.
-
Udostępnia narzędzia do programowania i testowania — dzięki narzędziu interfejsu wiersza polecenia platformy Spring Boot i osadzonym serwerom HTTP tworzenie środowisk do programowania i testowania aplikacji opartych na platformie Spring jest bardzo proste.
-
Oferuje wtyczki i narzędzia ułatwiające programowanie — platforma Spring Boot oferuje wtyczki umożliwiające pracę z bazami danych w pamięci, a także inne popularne narzędzia do automatyzacji kompilacji, takie jak Apache Maven.
Samouczki dotyczące platformy Java Spring Boot
Jeśli znasz już tworzenie aplikacji przy użyciu platformy Spring, prawdopodobnie łatwo nauczysz się platformy Spring Boot, korzystając z samouczków, szablonów startowych projektów i dokumentacji podanej w tej sekcji. Mamy jednak dobrą wiadomość dla osób, które chcą korzystać z platformy Spring Boot, ale jeszcze nie znają całej platformy. Można nauczyć się platformy Spring Boot — i zacząć z nią pracować — przed zapoznaniem się z platformą Spring, ponieważ w trakcie nauki poznasz wiele podstaw tej platformy. Chociaż nie nauczy Cię to wszystkiego, co należy wiedzieć o tej platformie, będzie to dobry punkt wyjścia, jeśli zdecydujesz się na naukę później.
Kolejną zaletą zapoznania się z platformą Spring Boot, poza znacznie szybszym i wydajniejszym tworzeniem aplikacji, jest to, że umożliwia ona również korzystanie z innych funkcji platformy Spring, czyli Spring Data, Project Reactor i Spring Security.
Wstrzykiwanie zależności
- Oparte na kodzie XML: <beans/> i <namespace:*/>.
- Oparte na adnotacjach: @Component, @Autowired, @Inject.
- Oparte na języku Java: klasy @Configuration, metody @Bean.
Inwersja kontroli (IoC)
- ApplicationContext — interfejs główny, który stanowi kontener IoC na platformie Spring.
- BeanFactory — interfejs umożliwiający dostęp do kontenera platformy Spring.
- Ziarna — obiekty tworzone, łączone i zarządzane przez obiekt ApplicationContext.
Samouczki dotyczące środowiska Java Spring Boot dla początkujących
Tworzenie i zabezpieczanie aplikacji języka Java
Utwórz aplikację w języku Java za pomocą Spring Initializr, korzystając ze startera usługi Spring Boot dla identyfikatora Tożsamość Microsoft Entra (dawniej Azure Active Directory).
Wdrażanie pierwszej aplikacji w usłudze Azure Spring Cloud
Dowiedz się, jak utworzyć, aprowizować i monitorować prostą aplikację platformy Spring Boot przy użyciu narzędzia Spring Initializr.
Tworzenie prostej mikrousługi platformy Spring Boot
Utwórz i wdróż prostą mikrousługę, a następnie dowiedz się, jak dodać do niej technologie platformy Spring Cloud.
Dodatkowe szablony startowe platformy Spring Boot
Dodaj funkcje magazynowania, zabezpieczeń, uwierzytelniania i magazynu kluczy do aplikacji platformy Spring Boot.
Często zadawane pytania
-
Spring Boot to platforma internetowa typu open source oparta na mikrousługach i języku Java, udostępniana przez platformę Spring i szczególnie przydatna dla inżynierów oprogramowania tworzących aplikacje internetowe i mikrousługi.
-
"Platforma Spring Boot w języku Java" to inne określenie "platformy Java Spring Boot" — tych dwóch terminów można używać zamiennie. Java to język i platforma, Spring to platforma aplikacji oparta na języku Java, a Spring Boot to rozszerzenie platformy Spring oferujące dodatkowe korzyści.
-
Platforma Spring Boot ma funkcje ogólnej platformy Spring, ale nie wymaga uczenia się platformy Spring. Deweloper może szybciej uruchomić aplikację, ponieważ atrybuty platformy Spring Boot są konfigurowane automatycznie, a ukierunkowane podejście usuwa większość standardowego kodu i konfigurowania związanego z tworzeniem i wdrażaniem aplikacji platformy Spring.
-
Tak, jak wspomniano powyżej, platforma Spring Boot jest szczególnie przydatna w przypadku architektury tworzenia oprogramowania opartej na mikrousługach. Mikrousługi to popularny sposób tworzenia małych, autonomicznych zespołów, które mogą pracować niezależnie. Specyfiką mikrousług jest to, że działają tylko w zapleczu.
-
Krótszy czas programowania, większa produktywność i łatwość użytkowania to tylko niektóre z zalet tworzenia aplikacji platformy Spring Boot.
-
Dostępnych jest wiele samouczków, przewodników Szybki start i dokumentacji w witrynie internetowej platformy Spring , a także szablony startowe platformy Spring Boot i dokumentacja na platformie Microsoft Azure. Jeśli chcesz od razu rozpocząć wdrażanie aplikacji platformy Spring Boot, zapoznaj się z seminarium internetowym Szybsze wdrażanie aplikacji platformy Spring Boot w chmurze na dużą skalę.