Vad är Spring Boot?
Java Spring Boot är ett verktyg med öppen källkod som gör det enklare att skapa mikrotjänster och webbappar med hjälp av Java-baserade ramverk. För alla definitioner av Spring Boot måste konversationen börja med Java – ett av de mest populära och använda utvecklingsspråken och databehandlingsplattformarna för apputveckling. Utvecklare över hela världen börjar sitt kodande med Java. Java är ett flexibelt och användarvänligt språk som används för en mängd olika appar – allt från program för sociala medier, webb- och spelappar till nätverks- och företagsprogram.
Java och Spring-ramverket
Java är relativt enkelt att använda och lära sig jämfört med andra språk, men komplexitetsnivån för att skapa, felsöka och distribuera Java-appar har ökat rejält. Detta beror på den exponentiella ökningen av antalet variabler som moderna utvecklare står inför när de ska utveckla webbappar eller mobilappar för vanliga moderna tekniker som musikströmning eller mobila betalningsappar. En utvecklare som skriver en grundläggande verksamhetsspecifik app behöver nu kunna hantera flera bibliotek, plugin-program, felloggning och bibliotek, integreringar med webbtjänster och kunna flera språk, till exempel C#, Java och HTML. Det finns av förståeliga skäl en omättlig efterfrågan på verktyg som effektiviserar utvecklingen av Java-appar och som gör att utvecklarna kan spara tid och pengar.
Här kommer programramverk in i bilden. Dessa ramverk är bibliotek med färdig kod som utvecklare kan använda i sin egen kod efter behov. Dessa ramverk underlättar för utvecklare oavsett om de utvecklar mobil- och webbappar eller arbetar med datorer och API:er. Med ramverk blir apputvecklingen snabbare, enklare och säkrare eftersom de erbjuder återvinningsbar kod och verktyg som binder ihop de olika elementen i ett programutvecklingsprojekt.
Här kommer Spring in: Spring är ett projekt med öppen källkod som ger en effektiv, modulär metod för att skapa appar med Java. Familjen med Spring-projekt påbörjades 2003 som ett svar på komplexiteten i den tidiga Java-utvecklingen och som stöd för utveckling av Java-appar. Namnet Spring refererar vanligtvis till själva programramverket, hela gruppen av projekt eller modulerna. Java Spring Boot är en specifik modul som skapats som en förlängning av Spring-ramverket.
Utifrån den här beskrivningen av hur Spring-ramverket, Spring Boot och Java fungerar tillsammans kan man definiera Spring Boot som ett verktyg som effektiviserar och påskyndar utvecklingen av webbappar och mikrotjänster i Java-ramverket Spring.
Eftersom språket och/eller plattformen är Java kan det kallas för "Java Spring Boot," "Java Spring-ramverket" eller "Spring Boot-ramverket." Men eftersom det finns andra ramverk från tredje part för Java, till exempel Play och Hibernate, är det mer korrekt att säga "Spring" och "Spring Boot".
En övergripande diskussion om grunderna i Java finns i artikeln Vad är Java?
Vad är skillnaden mellan Spring och Spring Boot?
Som vi nämnde tidigare är Spring ett Java-baserat appramverk med öppen källkod som omfattar många mindre projekt. Spring Data, Spring Cloud och Spring Security är några exempel på populära Spring-projekt. För att förstå skillnaden mellan Spring Boot och Spring är det viktigt att inse att även om det kan finnas skillnader i kärnfunktioner finns det allt i Spring-familjen.
För att förstå skillnaderna mellan Spring och Spring Boot måste vi först definiera några viktiga termer.
Vad är mikrotjänster?
Vad är beroendeinmatning?
Beroendeinmatning (DI) är en designteknik som används för att uppnå invertering av kontroll (IoC). Inom objektorienterad programmering som Java kallas objekt som är beroende av andra objekt beroenden. Normalt kallas det mottagande eller beroende objektet för en klient och objektet som klienten är beroende av kallas för en tjänst. Vid beroendeinmatning skickas därför tjänsten till klienten, eller så matas beroendet in med hjälp av kod (en så kallad injektor). Med beroendeinmatning behöver inte klienten ange vilken tjänst som ska användas – injektorn gör det jobbet åt klienten.
Vad är konvention före konfiguration?
Konvention före konfiguration, som ibland kallas kodning enligt konvention, är ett begrepp som används i programramverk för att minska antalet beslut som en utvecklare måste fatta. Den följer principen om att "inte upprepa sig" och skriva överflödig kod. Kodning enligt konvention strävar efter att upprätthålla flexibiliteten samtidigt som utvecklare endast skriver kod för de okonventionella aspekterna av appen som de skapar. När appens önskade beteende matchar de upprättade konventionerna körs appen som standard utan att det behöver skrivas några konfigurationsfiler. Utvecklaren behöver bara uttryckligen skriva konfigurationsfiler om det önskade beteendet avviker från "konventionen".
Spring-ramverk jämfört med Spring Boot
Spring | Spring Boot | |
---|---|---|
Vad är det här? | Ett ramverk för webbprogram med öppen källkod baserat på Java. | Ett tillägg eller en modul som bygger på Spring-ramverket. |
Vad gör det? | Tillhandahåller en flexibel, helt konfigurerbar miljö med hjälp av verktyg och bibliotek med fördefinierad kod för att skapa anpassade, löst kopplade webbappar. | Ger möjlighet att skapa fristående Spring-program som kan köras direkt utan att det behövs några anteckningar, XML-konfiguration eller en massa ytterligare kod. |
När ska jag använda det? | Använd Spring när du behöver:
| Använd Spring Boot när du behöver:
|
Vilken är dess huvudfunktion? | Beroendeinmatning | Automatisk konfiguration |
Finns inbäddade servrar? | Nej. I Spring måste du konfigurera servrarna explicit. | Ja, Spring Boot levereras med inbyggda HTTP-servrar som Tomcat och Jetty. |
Hur ska det konfigureras? | Spring-ramverket ger flexibilitet, men konfigurationen måste göras manuellt. | Spring Boot konfigurerar Spring och andra ramverk från tredje part automatiskt enligt standardprincipen "konvention före konfiguration". |
Behöver jag veta hur man arbetar med XML? | Kunskaper om XML-konfiguration krävs i Spring. | Spring Boot kräver inte XML-konfiguration. |
Finns det CLI-verktyg för dev/test-appar? | Spring-ramverket tillhandahåller inte CLI-verktyg för utveckling eller testning av appar. | Som Spring-modul har Spring Boot ett CLI-verktyg för att utveckla och testa Spring-baserade appar. |
Fungerar det utifrån en åsiktsinriktad eller ej åsiktsinriktad metod? | Ej åsiktsinriktad* | Åsiktsinriktad* |
*Åsiktsinriktad eller ej åsiktsinriktad ramverksmetod
Ordet "åsiktsinriktad" kan låta något negativt, men både den åsiktsinriktade metoden för Spring Boot och det ej åsiktsinriktade Spring-ramverket har sina fördelar.
Åsiktsinriktad metod
Enligt en åsiktsbaserad metod finns det ett sätt som är betydligt enklare än alla andra. Programvaran begränsar avsiktligt designers och uppmuntrar dem att göra saker på ett föreskrivet sätt.
Utvecklarna leds till att använda bästa praxis som fungerar för de flesta i de flesta situationer. Det innebär att appen skrivs på ett sätt som följer bästa praxis och allmänna konventioner. En åsiktsinriktad metod gör det mycket enklare att samarbeta och få hjälp med ett kodningsprojekt – andra utvecklare som har erfarenhet av ramverket känner igen koden i appen och kan börja arbeta direkt.
Ej åsiktsinriktad metod
En ej åsiktsinriktad metod används om alla lösningar kräver ungefär samma mängd arbete eller komplexitet. Den utgår ifrån att det inte bara finns ett rätt sätt att komma fram till en lösning på ett problem. I stället tillhandahålls flexibla verktyg som kan användas för att lösa problemet på många sätt. Ej åsiktsinriktade ramverk har den fördelen att de ger dig stor flexibilitet i utvecklingen och ger utvecklarna större kontroll. Den största nackdelen med så mycket flexibilitet är att utvecklaren har fler beslut att fatta och kan behöva skriva mer kod eftersom ramverket är så öppet.
Funktioner och fördelar med Spring Boot
Och slutligen till det mest spännande av allt, nämligen de kärnfunktioner som Java Spring Boot tillhandahåller utöver Spring-ramverket. Spring Boot ger en enklare och snabbare väg för att konfigurera, konfigurera och köra appar. Du slipper den omfattande konfiguration som krävs för de flesta Spring-baserade appar. Utvecklare kan börja använda Spring Boot direkt utan att behöva lära sig det underliggande Spring-ramverket.
Så här hjälper Spring Boot-funktioner dig att effektivisera Java-programmeringsuppgifter. Exempel på viktiga funktioner i Spring Boot:
-
Fristående program – Spring Boot hjälper till att skapa appar som inte är kopplade till någon viss plattform och som kan köras lokalt på en enhet utan att det krävs någon Internetanslutning eller andra installerade tjänster för att fungera.
-
Inbäddade servrar – Med Spring Boot kan du bädda in servrar som Tomcat, Jetty eller Undertow direkt.
-
Åsiktsinriktad metod – Spring Boot förenklar build-konfigurationen genom att tillhandahålla åsiktsinriktade startberoenden.
-
Automatisk konfiguration – Spring Boot konfigurerar automatiskt Spring och andra bibliotek från tredje part när så är möjligt.
-
Produktionsklara funktioner – Spring Boot tillhandahåller produktionsklara funktioner som mått, hälsokontroller och extern konfiguration.
Fördelar med Spring Boot
Spring Boot:
-
Minskar utvecklingstiden och ökar produktiviteten – Spring Boot gör det mycket enklare att utveckla Spring-baserade appar med Java. Dess åsiktsinriktade förhållande till Spring-ramverket minskar den tid som ägnas åt beslut och repetitiva uppgifter och frigör tid till att skapa och testa apparna.
-
Minskar behovet av att skriva upprepande kod, anteckningar och XML-konfiguration – Utvecklarna behöver inte generera kod eller konfigurera XML eller ens lära sig Spring-ramverket om de inte vill.
-
Integrerar appar i Spring-projektfamiljen – Spring Boot-appar integreras sömlöst med andra projekt i Spring-ramverkets ekosystem, t.ex. Spring Data, Spring Cloud, Spring Security och med andra betrodda molntjänster som Microsoft Azure Spring Cloud.
-
Tillhandahåller dev/test-verktyg – Med Spring Boots kommandoradsgränssnittsverktyg (CLI) och inbäddade HTTP-servrar kan du enkelt skapa miljöer för utveckling/testning av Spring-baserade appar.
-
Erbjuder plugin-program och verktyg som förenklar utvecklingen – Spring Boot erbjuder plugin-program som fungerar med minnesinterna databaser och andra populära versionsautomatiseringsverktyg som Apache Maven.
Java Spring Boot-självstudier
Om du redan är bekant med att skapa appar med Spring-ramverket kommer du förmodligen att finna det rätt enkelt att lära dig Spring Boot med hjälp av de självstudier, projektstartguider och den dokumentation som tillhandahålls i det här avsnittet. Men vi har också några goda nyheter för dig som har bråttom att komma igång med Spring Boot, men fortfarande är obekant med ramverket. Du kan lära dig Spring Boot och börja arbeta med det innan du lär dig Spring-ramverket eftersom du kommer att ta till dig många av ramverksgrunderna under arbetets gång. Även om du inte lär dig allt om ramverket på det här sättet, så ger det dig ett bra grund om du bestämmer dig för att gå vidare.
En annan fördel med att lära sig Spring Boot, förutom att apputvecklingsarbetet går mycket snabbare och effektivare, är att det även gör det möjligt för dig att använda andra Spring-funktioner, som exempelvis Spring Data, Project Reactor och Spring Security.
Beroendeinmatning
- XML-baserad, d.v.s. <beans/> och <namespace:*/>.
- Anteckningsbaserad, d.v.s. @Component, @Autowired, @Inject.
- Java-baserad, d.v.s. @Configuration-klasser, @Bean-metoder.
Invertering av kontroll (IoC)
- ApplicationContext – Rotgränssnittet som fungerar som Spring IoC-container.
- BeanFactory – Gränssnittet för åtkomst till Spring-containern.
- Beans – De objekt som instansieras, sammansätts och hanteras av ApplicationContext.
Java Spring Boot-självstudier för nybörjare
Skapa och skydda en Java-app
Skapa en Java-app med Spring Initializr med Spring Boot startprogrammet för Microsoft Entra ID (tidigare Azure Active Directory).
Distribuera din första app till Azure Spring Cloud
Lär dig att skapa, etablera och övervaka en enkel Spring Boot-app som skapats med Spring Initializr.
Skapa en enkel Spring Boot-mikrotjänst
Skapa och distribuera en enkel mikrotjänst – och lär dig sedan att lägga till Spring Cloud-tekniker till den.
Fler Spring Boot-startguider
Lägg till funktioner för lagring, säkerhet, autentisering och nyckelvalv i dina Spring Boot-appar.
Vanliga frågor och svar
-
Spring Boot är ett mikrotjänstbaserat Java-webbramverk med öppen källkod som erbjuds av Spring. Det är särskilt användbart för programvaruutvecklare som utvecklar webbappar och mikrotjänster.
-
"Spring Boot i Java" är ett annat sätt att säga "Java Spring Boot" – de två begreppen är utbytbara. Java är språket och plattformen, Spring är programramverket som baseras på Java och Spring Boot är ett tillägg till Spring-ramverket med vissa extra fördelar.
-
Spring Boot har samma funktioner som det övergripande Spring-ramverket, men du måste inte lära dig Spring för att kunna använda Spring Boot. Utvecklare kommer snabbare igång med apparna eftersom Spring Boot-attribut konfigureras automatiskt och den åsiktsinriktade metoden gör att de slipper mycket av den upprepande kod och konfiguration som förknippas med utveckling och distribution av Spring-appar.
-
Ja, som nämns ovan är Spring Boot särskilt användbart för en programutvecklingsarkitektur med mikrotjänster. Mikrotjänster är ett populärt sätt att skapa små, autonoma team som kan arbeta oberoende av varandra. Mikrotjänsterna fungerar endast i serverdelen.
-
Den kortare utvecklingstiden, ökade produktiviteten och användarvänligheten är bara några av fördelarna med att utveckla Spring Boot-appar.
-
Det finns många självstudier, snabbstarter och dokumentation på Spring-webbplatsen samt Spring Boot-startguider och dokumentation från Microsoft Azure. Om du vill komma igång direkt med att distribuera Spring Boot-appar kan du se webbseminariet Accelerate Spring Boot Applications to Cloud at Scale.