Trace Id is missing
Gå til hovedindholdet
Azure
Personer, der arbejder på kontoret på deres bærbare computerskærme

Hvad er Java Spring Boot?

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

En person, der ser på skærmen på en bærbar computer og bruger eksternt tastatur med mus

Hvad er Spring Boot?

Java Spring Boot er et værktøj med åben kildekode, der gør det nemmere at bruge Java-baserede strukturer til at oprette mikrotjenester og webapps. I forbindelse med enhver definition af Spring Boot skal samtalen starte med Java – et af de mest populære og bredt anvendte sprog og beregningsplatforme til appudvikling. Udviklere over hele verden begynder deres koderejse med at lære Java. Java er fleksibelt og brugervenligt og mange udvikleres favorit til mange forskellige apps – alt fra sociale medier, web og spilapps til netværk og virksomhedsprogrammer.

Java- og Spring-strukturen

Selvom Java kan være nemt at bruge og nemmere at lære end andre sprog, er kompleksiteten ved at bygge, fejlfinde og udrulle Java-apps eskaleret til svimlende nye 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 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, f.eks. C#, Java, HTML og andre. Der er forståeligt nok en umættelig efterspørgsel efter værktøjer, der strømliner java-appudvikling, hvilket sparer udviklerne tid og penge.

Angiv programstrukturer – med den store mængde forudskrevet kode, som udviklere kan bruge og føje til deres egen kode, alt efter hvad de har brug for. Disse strukturer gør udviklerens belastning lettere for næsten alle behov – uanset om de udvikler mobil- og webapps eller arbejder med skriveborde og API'er. Strukturer gør det hurtigere, nemmere og mere sikkert at oprette apps ved at levere kode og værktøjer, der kan genbruges, for at hjælpe med at binde de forskellige elementer i et softwareudviklingsprojekt sammen.

Det er her, Spring kommer ind i billedet: Spring er et projekt med åben kildekode, der giver en strømlinet, modulær tilgang til oprettelse af apps med Java. Serien af Spring -projekter startede i 2003 som en reaktion på kompleksiteten ved tidlig Java-udvikling og understøtter udvikling af Java-apps. Navnet Spring refererer normalt alene til selve programstrukturen eller hele gruppen af projekter eller moduler. Java Spring Boot er et specifikt modul, der er bygget som en udvidelse af Spring-strukturen.

Så med denne baggrund om, hvordan Spring-strukturen, Spring Boot og Java arbejder sammen, er her definitionen på Spring Boot –det værktøj, der strømliner og fremskynder udviklingen af webapps og mikrotjenester i Java-strukturen, Spring.

Da sproget og/eller platformen er Java, omtales det nogle gange som "Java Spring Boot," "Java Spring-strukturen" eller "Spring Boot-strukturen." Men da der er andre tredjepartsstrukturer til Java, f.eks. Play og Hibernate, er det mere nøjagtigt at sige, "Spring" og "Spring Boot."

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

Hvad er forskellen mellem Spring og Spring Boot?

Som tidligere nævnt er Spring en Java-baseret appstruktur med åben kildekode, der dækker mange mindre projekter under dens paraply. 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 de grundlæggende funktionaliteter, er det hele en del af Spring-familien.

For at forstå forskellene mellem Spring og Spring Boot fuldt ud skal vi først definere nogle få nøgleudtryk.

En person, der kigger på den bærbare computer.
En kvinde, der kigger på en tablet.

Hvad er mikrotjenester?

Microservices er en tilgang til arkitekturen til softwareudvikling. "Mikro" i mikrotjenester henviser til, at kode leveres i små, håndterbare dele eller komponenter, og hver "tjeneste" 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 skalering og relative isolation af disse mikrotjenester. 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 kontrol (IoC). I objektorienteret programmering som Java kaldes objekter, der er afhængige af andre objekter, 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ængighedsinjektioner overfører derfor tjenesten til klienten, eller "injicerer" afhængigheden ved hjælp af en kode, der kaldes en injektor. DI fjerner behovet for, at klienten angiver, hvilken tjeneste der skal bruges – injektoren gør dette for klienten.

En person, der kigger på den bærbare computer og skærm
En kvinde bærer et VR-headset

Hvad er konvention over konfiguration?

Konvention over konfiguration, nogle gange kaldet kodning efter konvention, er et koncept, der bruges i programstrukturer til at reducere antallet af beslutninger, som en udvikler skal træffe. Den overholder princippet "Gentag ikke dig selv" for at undgå at skrive redundant kode. Kodning efter konvention bestræber sig på at bevare fleksibiliteten, samtidig med at det er muligt for en udvikler kun at skrive kode til de ikke-bevidste aspekter af den app, de opretter. Når den ønskede funktionsmåde for appen svarer til de etablerede konventioner, kører appen blot som standard uden at skulle skrive konfigurationsfiler. Udvikleren skal kun skrive konfigurationsfiler eksplicit, 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 vs. Spring Boot, men i stedet en "både/og"-fordel. Det er ikke Spring vs Spring Boot; Spring og Spring Boot går hånd i hånd:
supportplan for hele organisationen
Spring Spring Boot
Hvad er det?

Et webprogrammiljø 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 oprette brugerdefinerede, løst sammenkoblede webapps.

Giver mulighed for at oprette separate Spring-programmer, der blot kan køre med det samme uden behov for anmærkninger, XML-konfiguration eller skrivning af meget ekstra kode.

Hvornår skal jeg bruge det?

Brug Spring, når du vil:

  • Fleksibilitet.
  • En unopinionated tilgang.*
  • Sådan fjerner du afhængigheder fra din brugerdefinerede kode.
  • Sådan implementerer du en meget unik konfiguration.
  • Sådan udvikler du virksomhedsprogrammer.

Brug Spring Boot, når du vil:

  • Let at bruge.
  • En opinionated tilgang.*
  • Sådan får du kvalitetsapps til at køre hurtigt og reducere udviklingstiden.
  • Sådan undgår du at skrive standardkode eller konfigurere XML.
  • Sådan udvikler du REST API'er.
Hvad er dets nøglefunktion?

Afhængighedsinjektion

Automatisk konfiguration

Har det integrerede servere?

Nej. I Spring skal du konfigurere serverne eksplicit.

Ja, Spring Boot leveres med indbyggede HTTP-servere som Tomcat og Jetty.

Hvordan er det konfigureret?

Spring-strukturen giver fleksibilitet, men konfigurationen skal bygges manuelt.

Spring Boot konfigurerer automatisk Spring og andre tredjepartsstrukturer efter standardprincippet "konvention over konfiguration".

Har jeg brug for at vide, hvordan jeg arbejder med XML?

I Spring er der brug for viden om XML-konfiguration.

Spring Boot kræver ikke XML-konfiguration.

Er der CLI-værktøjer til udvikling/test af apps?

Spring-strukturen alene indeholder ikke CLI-værktøjer til udvikling eller test af apps.

Som Spring-modul har Spring Boot et CLI-værktøj til udvikling og test af Spring-baserede apps.

Fungerer det ud fra en opinionated eller unopinionated tilgang?

Unopinionated*

Opinionated*

*Opinionated vs. unopinionated strukturtilgang

Selvom ordet "opinionated" kan lyde lidt negativt, har både den opinionated tilgang i Spring Boot og den unopinionated Spring-struktur sine fordele.

Opinionated tilgang

En opinionated tilgang siger, at der er én måde, der er markant bedre end alle de andre. Softwaren begrænser designerne og opfordrer dem til at gøre ting på den angivne måde.

Det giver en godt brolagt vej, en bedste praksis, der fungerer for de fleste i de fleste situationer. Appen er skrevet og holder sig tæt til disse bedste praksisser 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 have et umiddelbart kendskab til den nye app og kan komme i gang med det samme.

Unopinionated tilgang

En unopinionated tilgang er taget i brug, hvis alle løsninger kræver stort set samme mængde indsats eller kompleksitet. Den siger, at der ikke er én rigtig måde at nå frem til en løsning på et problem på. Den indeholder i stedet fleksible værktøjer, der kan bruges til at løse problemet på mange måder. Unopinionated strukturer har den fordel, at de giver masser af fleksibilitet i udviklingen, og de lægger mere kontrol i udviklerens hænder. Den største ulempe 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 ja, unopinionated.

Spring Boot-funktioner og -fordele

Til sidst den spændende del – kernefunktionerne, som Java Spring Boot leverer ud over Spring-strukturen. Spring Boot giver en nemmere og hurtigere måde at konfigurere og køre apps på. Det fjerner det tunge arbejde med konfiguration, der kræves for at konfigurere de fleste Spring-baserede apps. Udviklere kan gå direkte i gang med at bruge Spring Boot uden at skulle lære den underliggende Spring-struktur at kende.

En person, der sidder på en stol og ser på computerskærmen

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

Fordele ved Spring Boot

Spring Boot:

Java Spring Boot-selvstudier

Hvis du allerede er fortrolig med at bygge apps ved hjælp af Spring-strukturen, vil du sandsynligvis finde det ligetil at lære Spring Boot at kende ved hjælp af selvstudierne, projektstarterne og dokumentationen i dette afsnit. Men her er nogle gode nyheder, hvis du gerne vil hurtigt i gang med at bruge Spring Boot, men endnu ikke kender strukturen. Det er muligt at lære Spring Boot at kende – og komme i gang med at arbejde med det – før du lærer Spring-strukturen at kende, fordi du får adgang til 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.

En anden fordel ved at lære Spring Boot at kende, ud over at gøre appudvikling meget hurtigere og mere effektiv, er, at det også sætter dig i stand til at bruge andre Spring-funktioner, nemlig Spring Data, Project Reactor og Spring Security.

En person, der taler via en bærbar computer og bruger hovedtelefoner
Når det er sagt, vil du finde det nemmere at arbejde dig igennem dit første Spring Boot-selvstudium, hvis du først får mere at vide om, hvordan de grundlæggende begreber for afhængighedsinjektion og invertering af kontrol fungerer i Spring-strukturen. Her er en meget overordnet oversigt:

Afhængighedsinjektion

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

Invertering af kontrol (IoC)

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

Java Spring Boot-selvstudier for begyndere

Når du har lært det grundlæggende, kan du overveje at tjekke den fuldt administrerede Azure Spring Cloud -tjeneste fra Microsoft og VMware, hvis du vil bygge og udrulle Spring Boot-apps i stor skala. Eller – kom i gang med det samme med dette selvstudium om , hvordan du sikrer dine Spring Boot-apps med TLS/SSL-certifikater.

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

Opret en Java-app med Spring Initializr ved hjælp af Spring Boot-starteren til Microsoft Entra ID (tidligere Azure Active Directory).

Udrul din første app til Azure Spring Cloud

Få mere at vide om, hvordan du opretter, klargør og overvåger en enkel Spring Boot-app, der er bygget med Spring Initializr.

Byg en enkel Spring Boot-mikrotjeneste

Byg og udrul en enkel mikrotjeneste – og få derefter mere at vide om, hvordan du føjer Spring Cloud-teknologier til den.

Flere Spring Boot-startere

Føj lager-, sikkerheds-, godkendelses- og nøgleboksfunktioner til dine Spring Boot-apps.

Ofte stillede spørgsmål

  • Spring Boot er en mikrotjenestebaseret Java-webstruktur med åben kildekode, der tilbydes af Spring, og er især nyttig til softwareteknikere, der udvikler webapps og mikrotjenester.

  • "Spring Boot i Java" er en anden måde at sige "Java Spring Boot" på – de to begreber 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.

  • Spring Boot har funktionaliteten fra 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 med kortere tid, fordi Spring Boot-attributter er automatisk konfigureret, og den opinioated tilgang fjerner meget af standardkoden og konfigurationen, der er involveret i Spring-appudvikling og -udrulning.

  • Ja, som nævnt ovenfor er Spring Boot især nyttig i forbindelse med en tilgang til softwareudvikling i mikrotjenester. Mikrotjenester er en populær måde at bygge små, autonome teams, der kan fungere uafhængigt, på – og mikrotjenester fungerer i sagens natur kun i backend.

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

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

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