Przejdź do głównej zawartości

Co to jest Java Spring Boot?

Wprowadzenie do platformy Spring Boot —popularnego, opartego na języku Java narzędzia do tworzenia aplikacji internetowych i mikrousług

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. W przypadku każdej definicji platformy Spring Boot wprowadzanie należy rozpocząć od języka Java — jednego z najpopularniejszych i powszechnie używanych języków programowania oraz platform obliczeniowych na potrzeby tworzenia aplikacji. Deweloperzy na całym świecie rozpoczynają swoją przygodę z kodowaniem, ucząc się języka Java. Elastyczny i przyjazny dla użytkownika język Java jest ulubionym rozwiązaniem deweloperów dla 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

Chociaż język Java może być łatwy w użyciu i przystępniejszy do nauczenia się niż inne języki, poziom złożoności tworzenia, debugowania i wdrażania aplikacji w języku Java wzrósł do zawrotnych rozmiarów. Jest to spowodowane wzrastającą liczbą zmiennych, z którymi muszą się zmierzyć współcześni deweloperzy podczas tworzenia aplikacji internetowych lub aplikacji mobilnych dla 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 i wieloma językami, takimi jak C#, Java, HTML i inne. Zrozumiałe jest, że istnieje nienasycony popyt na wszelkie narzędzia, które usprawnią tworzenie aplikacji w języku Java, oszczędzając czas i pieniądze deweloperów.

Wprowadź platformy aplikacji — duże treści wstępnie napisanego kodu, które deweloperzy mogą używać i dodawać do własnego kodu zgodnie z ich potrzebami. Te platformy odciążają programistów w niemal każdym przypadku — niezależnie od tego, czy tworzą aplikacje mobilne i internetowe, czy też pracują z aplikacjami klasycznymi i interfejsami API. Za pomocą platform tworzenie aplikacji staje się szybsze, łatwiejsze i bezpieczniejsze, ponieważ dostarczają one kod wielokrotnego użytku i narzędzia, które pomagają powiązać ze sobą różne elementy projektu programistycznego.

Tu z pomocą przychodzi platforma Spring. Spring jest projektem typu open-source, który zapewnia usprawnione, modułowe podejście do tworzenia aplikacji w języku Java. Rodzina projektów Spring powstała w 2003 roku jako odpowiedź na złożoność programowania w języku Java w jego początkach, zapewniając wsparcie dla tworzenia aplikacji w języku Java. Sama nazwa „Spring” odnosi się zwykle do samej platformy aplikacji albo całej grupy projektów lub modułów. Java Spring Boot jest specyficznym modułem, który został stworzony jako rozszerzenie platformy Spring.

W związku z tym, wiedząc już jak platforma Spring, platforma Spring Boot i język Java współpracują ze sobą, oto definicja platformy Spring Boot — narzędzie, które usprawnia i przyspiesza tworzenie aplikacji internetowych i mikrousług w ramach języka Java platformy Spring.

Czasami, ponieważ język i/lub platforma to język Java, jest ona nazywana „Język Java platformy Spring Boot”, „Platforma Java Spring” lub „Platforma Spring Boot”. Ponieważ jednak istnieją inne platformy innych firm dla języka Java, takie jak Play i Hibernate, dokładniejsze jest powiedzieć „Spring” i „Spring Boot”.

Aby uzyskać ogólne omówienie podstaw języka Java, zapoznaj się z artykułem Co to jest język Java?

Jaka jest różnica między platformami Spring i Spring Boot?

Jak wspomniano już wcześniej, Spring to platforma aplikacji typu open-source oparta na języku Java, 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 platformami Spring Boot i Spring, należy zauważyć, że mimo różniących je podstawowych możliwości, wszystkie należą do rodziny Spring.

Aby w pełni zrozumieć różnice między platformami Spring Boot i Spring, warto najpierw zdefiniować kilka kluczowych terminów.

Co to są mikrousługi?

Mikrousługi są podejściem do architektury tworzenia oprogramowania. Słowo „mikro" w mikrousługach odnosi się do kodu dostarczanego w małych, zarządzalnych elementach lub składnikach, a każda „usługa” lub funkcja podstawowa jest tworzona i wdrażana niezależnie od innych usług. Niezależne składniki współpracują ze sobą i komunikują się za pomocą dokumentów interfejsu API nazywanych kontraktami. Mała skala i względna izolacja tych mikrousług mają wiele zalet. Na przykład, ponieważ ten typ architektury jest dystrybuowany i swobodnie sprzężony, cała aplikacja nie zostanie przerwana, jeśli jeden składnik ulegnie awarii. Inne korzyści to ulepszona produktywność, łatwiejsza konserwacja, lepsze dopasowanie biznesowe i większa odporność na uszkodzenia.

Co to jest wstrzykiwanie zależności?

Iniekcja zależności (DI) jest techniką projektowania używaną do uzyskania inwersji kontroli (IoC). W programowaniu obiektowym, takim jak 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óry jest zależny klient, jest nazywany usługą. Tak więc iniekcja zależności przekazuje usługę do klienta lub „wstrzykuje” zależność przy użyciu kodu wywołanego przez iniektor. DI eliminuje potrzebę określenia przez klienta, która usługa ma być używana — iniektor wykonuje to za klienta.

Co to jest konwencja konfiguracji?

Konwencja konfiguracji, czasami nazywana kodowaniem według konwencji, jest koncepcją używaną w strukturach aplikacji do zmniejszenia liczby decyzji podejmowanych przez dewelopera. Jest to zgodne z zasadą „nie powtarzaj siebie”, aby uniknąć pisania nadmiarowego kodu. Kodowanie według konwencji ma na celu zachowanie elastyczności, jednocześnie pozwalając deweloperowi na pisanie kodu tylko dla istotnych aspektów aplikacji, którą tworzy. Gdy żądane zachowanie aplikacji będzie zgodne z ustanowioną konwencją, aplikacja będzie uruchamiana domyślnie bez konieczności zapisywania plików konfiguracji. Deweloper będzie musiał jawnie zapisywać pliki konfiguracji tylko wtedy, gdy żądane zachowanie odbiega od „konwencji”.

Platforma Spring a platforma Spring Boot

Ponieważ platforma Spring Boot powstała w oparciu o korzyści z platformy Spring, używanie jej nie jest tak naprawdę kwestią wyboru „albo-albo” między platformą Spring a platformą Spring Boot, ale raczej zobaczenia korzyści jakie płyną z obu platform. Nie należy ich sobie przeciwstawiać — platformy Spring i Spring Boot są kompatybilne:

Niedostępne Spring Spring Boot
Co to jest? Platforma aplikacji internetowej typu open source oparta na języku Java. Rozszerzenie lub moduł utworzony na platformie Spring.
Co to robi? Zapewnia elastyczne, całkowicie konfigurowalne środowisko przy użyciu narzędzi i bibliotek wstępnie opracowanego kodu do tworzenia niestandardowych, luźno powiązanych aplikacji internetowych. Umożliwia tworzenie autonomicznych aplikacji platformy Spring, które mogą być uruchamiane natychmiast bez konieczności dodawania adnotacji, konfiguracji XML lub pisania dużej ilości dodatkowego kodu.
Kiedy należy go używać?

Używaj platformy Spring w razie potrzeby:

  • Elastyczność
  • Podejście elastyczne.*
  • Aby usunąć zależności z kodu niestandardowego.
  • Aby zaimplementować bardzo unikatową konfigurację.
  • Aby opracowywać aplikacje dla przedsiębiorstw.

Używaj platformy Spring Broot w razie potrzeby:

  • Łatwość użycia
  • Podejście ścisłe.*
  • Aby szybko uruchomić wysokiej jakości aplikacje i skrócić czas tworzenia.
  • Aby uniknąć pisania kodu standardowego lub konfigurowania kodu XML.
  • Aby opracować interfejsy API REST.
Jaka jest jej kluczowa funkcja? Wstrzykiwanie zależności Autokonfiguracja
Czy ma ona serwery osadzone? Nie. Na platformie Spring należy jawnie skonfigurować serwery. Tak, platforma Spring Boot jest dostarczana z wbudowanymi serwerami HTTP, takimi jak Tomcat i Jetty.
Jak jest skonfigurowana? Platforma Spring zapewnia elastyczność, ale jej konfiguracja musi zostać skompilowana ręcznie. Platforma Spring Boot automatycznie konfiguruje platformę firmy Spring i platformy inny firm według domyślnej zasady „konwencji 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? Sama platforma Spring nie udostępnia narzędzi interfejsu wiersza polecenia do tworzenia lub testowania aplikacji. Jako moduł platformy Spring platforma Spring Boot ma narzędzie interfejsu wiersza polecenia do tworzenia i testowania aplikacji opartych na platformie Spring.
Czy działa to z podejściem ścisłym, czy elastycznym? Elastyczne* Ścisłe*

*Podejście ścisłe i elastyczne

Podczas gdy słowo „ścisłe” może wydawać się nieznacznie negatywne, zalety mają zarówno ścisłe podejście platformy Spring Boot, jak i elastyczne podejście platformy Spring.

Podejście ścisłe

Podejście ścisłe oznacza, że istnieje jeden sposób, który jest znacznie łatwiejszy niż wszystkie pozostałe. Z założenia oprogramowanie ogranicza projektantów, zachęcając ich do robienia rzeczy w określony sposób.

Zapewnia dobrze określoną ś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 ściśle według tych najlepszych praktyk i rozpowszechnionych konwencji. Podejście ścisłe znacznie ułatwia współpracę i uzyskanie pomocy w projekcie kodowania — inni programiści, którzy mają doświadczenie z daną platformą, natychmiast zapoznają się z nową aplikacją i będą mogli od razu przystąpić do pracy.

Podejście elastyczne

Podejście elastyczne jest wdrażane, jeśli wszystkie rozwiązania wymagają w przybliżeniu takiej samej ilości nakładu pracy lub złożoności. Zakłada ono, że nie ma żadnej jedynej metody, aby dotrzeć do rozwiązania problemu. Zamiast tego udostępnia elastyczne narzędzia, których można użyć do rozwiązania problemu na wiele sposobów. Zaletą platform elastycznych jest to, że zapewniają dużą elastyczność w programowaniu i dają deweloperom większą kontrolę. Główną wadą tak dużej elastyczności jest to, że deweloper ma więcej decyzji do podjęcia i może być konieczne napisanie więcej kodu, ponieważ platforma jest tak otwarta i elastyczna.

Funkcje i korzyści platformy Spring Boot

Na koniec ciekawa część — podstawowe możliwości platformy Java Spring Boot wykraczające poza platformę Spring. Platforma Spring Boot zapewnia łatwiejszą i szybszą ścieżkę instalowania, konfigurowania i uruchamiania aplikacji. Eliminuje to duże obciążenie powodowane konfiguracją, która jest wymagana, aby skonfigurować większość aplikacji opartych na platformie Spring. Deweloperzy mogą od razu rozpocząć pracę na platformie Spring Boot bez konieczności poznawania podstawowej platformy Spring.

Poniżej opisano, jak funkcje platformy Spring Boot pomagają usprawnić zadania programowania 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 które mogą być uruchamiane lokalnie na urządzeniu bez połączenia internetowego lub innych zainstalowanych usług, aby mogły działać.
  • Serwery osadzone — Platforma Spring Boot umożliwia bezpośrednie osadzanie serwerów, takich jak Tomcat, Tomasz lub Undertow.
  • Podejście ścisłe — Platforma Spring Boot upraszcza konfiguracje kompilacji, udostępniając ścisłe zależności początkowe.
  • Autokonfiguracja—Platforma Spring Boot automatycznie konfiguruje biblioteki firmy Spring i innych firm, gdy tylko jest to możliwe.
  • Funkcje gotowe do produkcji —Platforma Spring Boot zapewnia gotowe do produkcji funkcje, takie jak metryki, kontrole kondycji i konfiguracja zewnętrzna.

Zalety platformy Spring Boot

Spring Boot:

  • Skraca czas programowania i zwiększa produktywność — Platforma Spring Boot znacznie ułatwia tworzenie aplikacji opartych na platformie Spring przy użyciu języka Java. Jej ścisłe podejście do platformy Spring zmniejsza czas poświęcony na decyzje i powtarzające się zadania oraz oszczędza czas pozwalając skupić się na tworzeniu i testowaniu aplikacji.
  • Zmniejsza potrzebę pisania kodu standardowego, adnotacji i konfiguracji XML — deweloperzy nie muszą generować kodu ani konfigurować kodu XML, a nawet uczyć się platformy Spring, jeśli tego 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, Spring Security, a także z innymi zaufanymi usługami w chmurze, takimi jak Microsoft Azure Spring Cloud.
  • Udostępnia narzędzia do tworzenia i testowania — Za pomocą narzędzia interfejsu wiersza polecenia (CLI) platformy Spring Boot i osadzonym serwerom HTTP, tworzenie środowisk do tworzenia i testowania aplikacji opartych na platformie Spring jest znacznie prostsze.
  • 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 automatyzacji kompilacji, takie jak Apache Maven.

Samouczki dotyczące języka Java platformy Spring Boot

Jeśli już wiesz, jak tworzyć aplikacje przy użyciu platformy Spring, prawdopodobnie z łatwością nauczysz się obsługi platformy Spring Boot przy użyciu samouczków, szablonów startowych projektów i dokumentacji zawartej w tej sekcji. Jeśli chcesz szybko skorzystać z platformy Spring Boot, ale jeszcze jej nie znasz, mamy też dobrą wiadomość. Możesz nauczyć się obsługi platformy Spring Boot — i zacząć na niej pracować — zanim poznasz platformę Spring, ponieważ wiele podstawowych informacji zdobędziesz z czasem w praktyce. Chociaż nie nauczysz się wszystkiego, co należy wiedzieć o platformie, będzie to dobre wprowadzenie, jeśli zdecydujesz się na dalszą naukę.

Kolejną zaletą uczenia się platformy Spring Boot, poza znacznie szybszym i bardziej wydajnym tworzeniem aplikacji, jest to, że umożliwia ona również korzystanie z innych funkcji platformy Spring, czyli Spring Data, Project Reactor i Spring Security.

Mimo to łatwiej będzie ci pracować z pierwszym samouczkiem platformy Spring Boot, jeśli najpierw dowiesz się, jak podstawowe pojęcia dotyczące wstrzykiwania zależności i inwersji kontroli działają na platformie Spring. Poniżej przedstawiono bardzo ogólne omówienie:

Wstrzykiwanie zależności

  • Oparte na kodzie XML, tj. <beans/> i <namespace:*/>
  • Oparte na adnotacjach, tj. @Component, @Autowired, @Inject
  • Oparte na języku Java, tj. klasy @Configuration, metody @Bean

Inwersja kontroli (IoC)

  • ApplicationContext — interfejs główny, który służy jako kontener Spring IoC
  • BeanFactory — interfejs służący do uzyskiwania dostępu do kontenera platformy Spring
  • Beans—obiekty tworzone, składane i zarządzane przez ApplicationContext

Platforma Java Spring Boot — samouczki dla początkujących

Gdy opanujesz już podstawy i chcesz tworzyć i wdrażać aplikacje platformy Spring Boot na dużą skalę, zastanów się nad wypróbowaniem w pełni zarządzanej usługi Azure Spring Cloud oferowanej przez firmy Microsoft i VMware. Możesz też od razu rozpocząć pracę z tym samouczkiem dotyczącym zabezpieczania aplikacji platformy Spring Boot za pomocą certyfikatów TLS/SSL.

Tworzenie i zabezpieczanie aplikacji Java

Utwórz aplikację w języku Java za pomocą narzędzia Spring Initializr przy użyciu szablonu startowego platformy Spring Boot dla usługi Azure Active Directory (Azure AD).

Wdrażanie pierwszej aplikacji w usłudze Azure Spring Cloud

Dowiedz się, jak tworzyć, aprowizować i monitorować prostą aplikację platformy Spring Boot utworzoną przy użyciu narzędzia Spring Initializr.

Tworzenie prostej mikrousługi na platformie Spring Boot

Skompiluj i wdróż prostą mikrousługę, a następnie naucz się dodawać do niej technologie usługi Spring Cloud.

Więcej szablonów startowych platformy Spring Boot

Dodaj funkcje magazynu, zabezpieczeń, uwierzytelniania i magazynu kluczy do aplikacji platformy Spring Boot.

Często zadawane pytania

  • Spring Boot to oparta na mikrousługach struktura internetowa Java typu open source, oferowana przez Spring, szczególnie przydatna dla inżynierów oprogramowania tworzących aplikacje internetowe i mikrousługi.

    Dowiedz się więcej

  • ”Spring Boot w języku Java” to inny sposób mówienia „Java Spring Boot” – te dwa terminy mogą być używane zamiennie. Java to język i platforma, Spring to struktura aplikacji oparta na języku Java, a Spring Boot to rozszerzenie struktury Spring z pewnymi dodanymi korzyściami.

    Dowiedz się więcej

  • Struktura Spring Boot posiada funkcjonalność ogólnej struktury Spring, ale nie wymaga jej uczenia się. Deweloper może uruchomić aplikację w krótszym czasie, ponieważ atrybuty struktury Spring Boot są konfigurowane automatycznie, a konkretne podejście usuwa większość zazębiającego się kodu i konfiguracji związanych z opracowywaniem i wdrażaniem aplikacji Spring.

    Dowiedz się więcej

  • Jak wspomniano powyżej, platforma Spring Boot jest szczególnie przydatna w przypadku podejścia do architektury tworzenia oprogramowania ukierunkowanego na mikrousługi. Mikrousługi to popularny sposób tworzenia małych, autonomicznych zespołów, które mogą działać niezależnie. Z założenia mikrousługi działają tylko w oparciu o wewnętrzną bazę danych.

    Dowiedz się więcej

  • Krótszy czas programowania, większa produktywność i łatwość użycia, to tylko niektóre zalety tworzenia aplikacji Spring Boot..

    Dowiedz się więcej

  • Istnieje wiele samouczków, przewodników Szybki start i dokumentacji w witrynie internetowej Spring, a także pakietów startowych Spring Boot i dokumentacji platformy Microsoft Azure. Jeśli chcesz od razu rozpocząć wdrażanie aplikacji Spring Boot, zapoznaj się z seminarium internetowym Przyspiesz wdrażanie aplikacji Spring Boot do chmury na dużą skalę.

    Dowiedz się więcej

Wszystko gotowe — utwórz bezpłatne konto platformy Azure