Trace Id is missing
Przejdź do głównej zawartości
Osoby pracujące w biurze przed ekranem laptopa

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.

Osoba patrząca na ekran laptopa i używająca klawiatury zewnętrznej z myszą

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.

Osoba patrząca na laptopa.
Kobieta patrząca na tablet.

Co to są mikrousługi?

Mikrousługi to jedno z podejść do architektury tworzenia oprogramowania. Człon "mikro" w mikrousługach odnosi się do kodu dostarczanego w małych, zarządzanych częściach lub składnikach, gdzie każda "usługa" lub podstawowa funkcja jest tworzona i wdrażana niezależnie od innych usług. Te niezależne składniki współpracują ze sobą i komunikują się za pośrednictwem określonych dokumentów interfejsów API nazywanych kontraktami. Mała skala i relatywna izolacja takich mikrousług ma wiele zalet. Na przykład architektura tego typu jest rozproszona i luźno sprzężona, dlatego cała aplikacja nie ulega awarii w przypadku problemu z jednym składnikiem. Inne korzyści to większa produktywność, łatwiejsza konserwacja, lepsze dopasowanie do firmy i większa odporność na uszkodzenia.

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.

Osoba patrząca na laptopa i monitor
Kobieta w zestawie słuchawkowym rzeczywistości wirtualnej

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

Ponieważ platforma Spring Boot bazuje na zaletach platformy Spring, tak naprawdę nie jest to "alternatywa" między platformą Spring a Spring Boot, lecz raczej korzyści płynące z "obu" platform. To nie jest wybór między platformą Spring a Spring Boot — platformy te ściśle współpracują ze sobą:
plan pomocy technicznej dla całej organizacji
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:

  • Elastyczność.
  • Nieukierunkowane podejście.*
  • Usunięcie zależności z Twojego kodu niestandardowego.
  • Implementacja bardzo unikatowej konfiguracji.
  • Opracowywanie aplikacji dla przedsiębiorstw.

Używaj platformy Spring Boot, jeśli masz następujące wymagania:

  • Prostota użytkowania.
  • Ukierunkowane podejście.*
  • Szybkie uruchamianie wysokiej jakości aplikacji i skrócenie czasu programowania.
  • Unikanie pisania standardowego kodu lub konfigurowania kodu XML.
  • Opracowywanie interfejsów API REST.
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.

Osoba siedząca na krześle i patrząca na ekran komputera

Poniżej opisano, jak funkcje platformy Spring Boot pomagają usprawnić zadania programistyczne w języku Java. Oto niektóre kluczowe funkcje platformy Spring Boot:

Zalety platformy Spring Boot

Platforma Spring Boot:

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.

Osoba rozmawiająca przez laptopa przy użyciu słuchawek
Łatwiej będzie Ci korzystać z pierwszego samouczka dotyczącego platformy Spring Boot, jeśli najpierw poznasz podstawowe pojęcia dotyczące wstrzykiwania zależności i inwersji kontroli na platformie Spring. Poniżej przedstawiono bardzo ogólne omówienie:

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

Po opanowaniu podstaw, jeśli chcesz tworzyć i wdrażać aplikacje platformy Spring Boot na dużą skalę, rozważ zapoznanie się z całkowicie zarządzaną usługą Azure Spring Cloud oferowaną przez firmy Microsoft i VMware. Możesz też od razu rozpocząć pracę z tym samouczkiem dotyczącym sposobu zabezpieczania aplikacji platformy Spring Boot za pomocą certyfikatów TLS/SSL.

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ę.

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