Spring over navigation

Hvad er Java Spring Boot?

En introduktion til Spring Boot – det populære, Java-baserede værktøj til udvikling af webapps og microservices

Hvad er Spring Boot?

For enhver definition af Spring Boot skal samtalen starte med Java – et af de mest populære og meget anvendte udviklingssprog og beregningsplatforme til appudvikling. Udviklere over hele verden starter deres kodningsrejse med at lære Java. Java, der er fleksibelt og brugervenligt, er en favorit bland udviklere til en række apps – alt fra sociale medier, webapps og spilapps til netværk og virksomhedsprogrammer.

Java- og Spring-struktur

Selvom Java kan være let at bruge og nemmere at lære end andre sprog, er kompleksitetsniveauet for build, fejlfinding og installation af Java-apps steget til svimlende højder. Dette skyldes det eksponentielle antal variabler, som moderne udviklere står over for, når de udvikler webapps eller mobilapps til almindelige moderne teknologier såsom musikstreaming eller mobilapps til kontantbetaling. En udvikler, der skriver en grundlæggende line of business-app, skal nu håndtere flere biblioteker, plug-ins, fejllogføring og håndtering af biblioteker, integrationer med webtjenester og flere sprog som C#, Java, HTML og andre. Det er forståeligt nok, at der er en umættelig efterspørgsel efter værktøjer, der kan strømline udviklingen af Java-apps og spare udviklerne tid og penge.

Her træder programstrukturer ind i billedet— store mængder forudskrevet kode, som udviklere kan bruge og tilføje til deres egen kode, alt efter hvad de har brug for. Disse strukturer letter udviklernes arbejde for næsten alle behov - uanset om de udvikler mobil- og webapps eller arbejder med desktops og API'er. Strukturer gør det hurtigere, nemmere og mere sikkert at skabe apps ved at levere genanvendelig kode og værktøjer, der hjælper med at binde de forskellige elementer i et softwareudviklingsprojekt sammen.

Her kommer Spring ind i billedet: Spring er et projekt med åben kildekode, der giver en strømlinet, modulær tilgang til oprettelse af apps med Java. Familien af Spring-projekter begyndte i 2003 som en respons på kompleksiteten ved tidlig Java-udvikling og yder support til udvikling af Java-apps. Navnet Spring refererer normalt til selve programstrukturen eller hele gruppen af projekter eller moduler. Spring Boot er et specifikt modul, der er bygget som en udvidelse af Spring-strukturen.

Med den baggrund i, hvordan Spring-strukturen, Spring Boot og Java fungerer sammen, får du her definitionen af Spring Boot – det værktøj, der strømliner og øger hastigheden af webapps og mikrotjenester inden for Java-strukturen, Spring.

Nogle gange, fordi sproget og/eller platformen er Java, kaldes det "Java Spring Boot", "Java Spring-strukturen" eller "Spring Boot-strukturen". Men fordi der er andre tredjeparts-strukturer til Java, f.eks. Play og Hibernate, er det mere korrekt at sige "Spring" og "Spring Boot".

Du kan få en detaljeret beskrivelse af de grundlæggende funktioner i Java i artiklen Hvor er Java?

Hvad er forskellen på Spring og Spring Boot?

Som nævnt tidligere er Spring en Java-baseret appstruktur med åben kildekode, der omfatter mange mindre projekter. Andre populære Spring-projekter omfatter Spring Data, Spring Cloud og Spring Security for blot at nævne nogle få. For at forstå forskellen mellem Spring Boot og Spring er det vigtigt at forstå, at selvom der kan være forskelle i kernefunktionerne, er det alt sammen i Spring-familien.

For at kunne forstå forskellene mellem Spring Boot og Spring fuldt ud skal vi definere et par nøglebegreber først.

Hvad er microservices?

Microservices er en tilgang til arkitekturen til softwareudvikling. "micro" i microservices refererer til kode, der leveres i små, håndterbare dele eller komponenter, og hver "service" eller kernefunktion oprettes og udrulles uafhængigt af de andre tjenester. De uafhængige komponenter arbejder sammen og kommunikerer via angivne API-dokumenter, der kaldes kontrakter. Der er mange fordele ved den lille skala og relative isolation af disse microservices. Da denne type arkitektur f.eks. er distribueret og løst sammenkoblet, går hele appen ikke i stykker, hvis én komponent mislykkes. Andre fordele er forbedret produktivitet, nemmere vedligeholdelse, bedre forretningsjustering og større fejltolerance.

Hvad er afhængighedsinjektion?

Afhængighedsinjektion (DI) er en designteknik, der bruges til at opnå invertering af kontrolelementer (IoC). I objektorienteret programmering som Java, objekter, der afhænger af andre objekter, kaldes afhængigheder. Det modtagende eller afhængige objekt kaldes typisk en klient, og det objekt, som klienten er afhængig af, kaldes en tjeneste. Afhængighedsinjektion overfører tjenesten til klienten, eller den "injicerer" afhængigheden ved hjælp af kode, der kaldes en injector. DI eliminerer behovet for, at klienten angiver, hvilken tjeneste der skal bruges – den injiceringsfunktion, der fungerer for klienten.

Hvad er konvention for konfiguration?

Konvention over konfiguration, også kaldet kodning efter konvention, er et begreb, der bruges i programstrukturer til at reducere antallet af beslutninger, som en udvikler skal træffe. Den overholder det grundlæggende "gentag ikke dig selv"-princip for at undgå at skrive redundant kode. Kodning efter konvention søger at opretholde fleksibilitet, samtidig med at en udvikler kun kan skrive kode til de ikke-bevidste aspekter af den app, de opretter. Når den ønskede funktionsmåde for appen svarer til de oprettede konventioner, køres appen som standard uden at skulle skrive konfigurationsfiler. Udvikleren skal kun eksplicit skrive konfigurationsfiler, hvis den ønskede funktionsmåde afviger fra "konventionen".

Spring-struktur vs. Spring Boot

Da Spring Boot er bygget på fordelene ved Spring-strukturen, er det i virkeligheden ikke et "enten/eller"-spørgsmål om Spring-strukturen i forhold til Spring Boot, men derimod en "både/og"-fordel. Spring og Spring Boot går hånd i hånd:

Ikke tilgængelig Spring Spring Boot
Hvad er det? En webprogramstruktur med åben kildekode, der er baseret på Java. En udvidelse eller et modul, der er bygget på Spring-strukturen.
Hvad gør det? Giver et fleksibelt miljø, der kan konfigureres fuldstændigt, ved hjælp af værktøjer og biblioteker med forudbygget kode til at skabe tilpassede, løst koblede webapps. Giver mulighed for at oprette selvstændige Spring-programmer, der kan køres med det samme uden annotationer, XML-konfiguration eller skrivning af en masse ekstra kode.
Hvornår skal jeg bruge det?

Brug Spring, når du vil:

  • Fleksibilitet
  • En unopinionated tilgang.*
  • For at fjerne afhængigheder fra din brugerdefinerede kode.
  • For at implementere en meget entydig konfiguration.
  • Til udvikling af virksomhedsprogrammer.

Brug Spring Boot, når du vil:

  • Brugervenlighed
  • En opinionated tilgang.*
  • For at få apps af høj kvalitet hurtigt op at køre og reducere udviklingstiden.
  • For at undgå at skrive standardkode eller konfigurere XML.
  • Til udvikling af REST API'er.
Hvad er dens nøglefunktion? Afhængighedsinjektion Automatisk konfiguration
Har den integrerede servere? Nej. I Spring skal du konfigurere serverne eksplicit. Ja, Spring Boot leveres med indbyggede HTTP-servere som Tomcat og Jetty.
Hvordan er den konfigureret? Spring-strukturen giver fleksibilitet, men konfigurationen skal bygges manuelt. Spring Boot konfigurerer automatisk Spring- og andre tredjeparts-strukturer som standard efter princippet "konvention over konfiguration".
Har jeg brug for at vide, hvordan jeg arbejder med XML? I Spring er kendskab til XML-konfiguration påkrævet. Spring Boot kræver ikke XML-konfiguration.
Er der CLI-værktøjer til udvikling/test af apps? Spring-strukturen alene leverer ikke CLI-værktøjer til udvikling eller test af apps. Som Spring-modul har Spring Boot et CLI-værktøj til at udvikle og teste Spring-baserede apps.
Fungerer det ud fra en opinionated eller ikke-unopinionated tilgang? Unopinionated* Opinionated*

*Opinionated vs. unopinionated strukturtilgang

Selvom ordet "opinionated" muligvis lyder negativt, har både den opinionated tilgang til Spring Boot og den unopinionated Spring-struktur deres fordele.

Opinionated tilgang

En opinionated tilgang indtager den holdning at der er én måde, der er betydeligt nemmere end alle de andre. Softwaren begrænser designerne og opfordrer dem til at gøre tingene på den foreskrevne måde.

Det er et godt grundlag, en bedste praksis, som vil fungere for de fleste personer i de fleste situationer. Appen er skrevet i nøje overensstemmelse med disse bedste praksis og udbredte konventioner. En opinionated tilgang gør samarbejde og det at få hjælp til et kodningsprojekt meget nemmere—andre udviklere, der har erfaring med den pågældende struktur, vil straks være bekendt med den nye app og kan hoppe direkte ind i den.

Unopinionated tilgang

En unopinionated tilgang anvendes, hvis alle løsninger kræver stort set samme indsats eller kompleksitet. Den indtager den holdning, at der ikke er én rigtig måde at finde en løsning på et problem på. I stedet stiller den fleksible værktøjer til rådighed, som kan bruges til at løse problemet på mange måder. Unopinionated strukturer har fordelen ved at give masser af fleksibilitet i udvikling, og de giver udviklere mere kontrol. Den største fordel ved så stor fleksibilitet er, at udvikleren har flere beslutninger at træffe og kan ende med at skulle skrive mere kode, fordi strukturen er så åben og unopinionated.

Spring Boot-funktioner og -fordele

Endelig den spændende del—de kernefunktioner, som Spring Boot leverer ud over Spring-strukturen. Spring Boot giver en nemmere og hurtigere sti til at konfigurere og køre apps. Det eliminerer det svære arbejde i konfigurationen, der er påkrævet for at konfigurere de fleste Spring-baserede apps. Udviklere kan hoppe direkte ind og bruge Spring Boot uden nogensinde at skulle lære det underliggende Spring-struktur at kende.

Sådan hjælper Spring Boot-funktioner med at strømline Java-programmeringsopgaver. Nogle af de vigtigste funktioner i Spring Boot er:

  • enkeltstående programmer – Spring Boot hjælper med at oprette apps, der ikke er knyttet til en bestemt platform, og som kan køre lokalt på en enhed uden en internetforbindelse eller andre installerede tjenester for at fungere.
  • Integrerede servere – Spring Boot giver dig mulighed for at integrere servere som Tomcat, Jetty eller Undertow direkte.
  • Opinionated tilgang—Spring Boot forenkler buildkonfigurationer ved at levere opinionated startafhængigheder.
  • Automatisk konfiguration – Spring Boot konfigurerer automatisk Spring- og andre tredjepartsbiblioteker, når det er muligt.
  • Produktionsklare funktioner—Spring Boot indeholder produktionsklare funktioner som f.eks. målepunkter, tilstandskontrol og eksternaliseret konfiguration.

Fordele ved Spring Boot

Spring Boot:

  • Reducerer tid i udvikling og øger produktiviteten—Spring Boot gør det meget nemmere at udvikle Spring-baserede apps med Java. Dens opinionated tilgang til Spring-strukturen reducerer den tid, der bruges på beslutninger og gentagne opgaver, og frigør tid til at fokusere på at oprette og teste apps.
  • Mindsker behovet for at skrive standardkode, annotations og XML-konfiguration—Udviklere behøver ikke at generere kode eller konfigurere XML eller endda lære Spring-strukturen at kende, hvis de ikke ønsker det.
  • Integrerer apps i Spring-projektfamilien—Spring Boot-apps integreres problemfrit med andre projekter i Spring struktur-økosystemet—såsom Spring Data, Spring Cloud, Spring Security—samt med andre pålidelige cloudtjenester som f.eks. Microsoft Azure Spring Cloud.
  • Giver udviklings-/testværktøjer—Med Spring Boot's CLI-værktøj (Command-line Interface) og integrerede HTTP-servere er det meget nemt at oprette miljøer til udvikling/test af Spring-baserede apps.
  • Tilbyder plug-ins og værktøjer til at gøre udvikling nemmere—Spring Boot tilbyder plug-ins til at kunne arbejde med databaser i hukommelsen samt andre populære værktøjer til buildautomatisering, som f.eks. Apache Mapper.

Selvstudier til Java Spring Boot

Hvis du allerede er fortrolig med at bygge apps med Spring-strukturen, vil du sandsynligvis finde det nemt at lære Spring Boot ved hjælp af de selvstudier, projektstartere og den dokumentation, der findes i dette afsnit. Men her er nogle gode nyheder, hvis du har travlt med at bruge Spring Boot, men ikke kender strukturen endnu: Det er muligt at lære—og arbejde med—Spring Boot, før du lærer Spring-strukturen at kende, fordi du lærer mange af de grundlæggende elementer i strukturen undervejs. Selvom dette ikke lærer dig alt, hvad der er at vide om strukturen, vil det give dig et godt forspring, hvis du beslutter dig for at lære det senere.

Ud over at gøre appudvikling meget hurtigere og mere effektiv, er en anden fordel ved at lære Spring Boot, at den også gør dig i stand til at kunne bruge andre Spring-funktioner, dvs. Spring Data, Project Reactor og Spring Security.

Når det er sagt, vil det være nemmere for dig at arbejde dig igennem dit første Spring Boot-selvstudium, hvis du først lærer, hvordan de grundlæggende koncepter for afhængighedsinjicering og invertering af kontrol fungerer i Spring-strukturen. Her er en oversigt på et meget højt niveau:

Afhængighedsinjektion

  • XML-baseret, dvs. <beans/> og <namespace:*/>
  • Annotationbaseret, dvs. @Component, @Autowired, @Inject
  • Java-baseret, dvs. @Configuration-klasser, @Bean-metoder

Invertering af kontrolelement (IoC)

  • ApplicationContextthe— rodgrænseflade, der fungerer som Spring IoC-objektbeholder
  • BeanFactory – den grænseflade, der bruges til at få adgang til Spring-objektbeholderen
  • Beans - de objekter, der instantieres, samles og administreres af ApplicationContext

Spring Boot-selvstudier for begyndere

Når du har styr på det grundlæggende, kan du overveje at tjekke den fuldt administrerede Azure Spring Cloud-tjeneste fra Microsoft og VMware, hvis du ønsker at bygge og implementere Spring Boot-apps i stor skala.

Opret og hjælp med at sikre en Java-app

Opret en Java-app med Spring Initializr ved hjælp af Spring Boot-starter til Azure Active Directory (Azure AD).

Udrul din første app til Azure Spring Cloud

Få mere at vide om at oprette, klargøre og overvåge en enkel Spring Boot-app, der er udviklet med Spring Initializr.

Byg en enkel Spring Boot-microservice

Byg og udrul en simpel microservice – og lær derefter at føje Spring Cloud-teknologier til den.

Flere Spring Boot-startere

Føj lager-, sikkerheds-, godkendelses- og key vault-funktioner til dine Spring Boot-apps.

Ofte stillede spørgsmål

  • Spring Boot er en Java-webstruktur med åben kildekode, der er baseret på mikrotjenester. Det leveres af Spring og er særligt nyttig for softwareteknikere, der udvikler webapps og mikrotjenester.

    Få mere at vide

  • "Spring Boot i Java" er en anden måde at sige "Java Spring Boot" på – de to udtryk kan bruges synonymt. Java er sproget og platformen, Spring er programstrukturen baseret på Java, og Spring Boot er en udvidelse af Spring-strukturen med nogle ekstra fordele.

    Få mere at vide

  • Spring Boot har funktionaliteten i den generelle Spring-struktur, men Spring Boot kræver ikke, at du lærer Spring at kende. En udvikler kan få en app op at køre på kortere tid, fordi Spring Boot-attributterne er automatisk konfigureret, og den meningsfulde tilgang fjerner meget af standardkoden og konfigurationen, der er involveret i Spring-appudvikling og -udrulning.

    Få mere at vide

  • Reduceret udviklingstid, øget produktivitet og brugervenlighed er blot nogle af fordelene ved at udvikle Spring Boot-apps.

    Få mere at vide

  • Der er masser af selvstudier, hurtig start og dokumentation om Spring-webstedet samt Spring Boot Starters og dokumentation fra Microsoft Azure. Hvis du gerne vil i gang med at udrulle Spring Boot-apps med det samme, kan du se webinaret Accelerate Spring Boot Applications to Cloud at Scale.

    Få mere at vide

Den er klar, når du er – lad os konfigurere din gratis Azure-konto

Kan vi hjælpe dig?