Trace Id is missing
Gå til hovedinnhold
Personer som arbeider på skjermen på sin bærbare datamaskin på et kontor

Hva er Java Spring Boot?

En introduksjon til Spring Boot – det populære Java-baserte verktøyet for utvikling av webprogrammer og mikrotjenester.

En person som ser på skjermen på en bærbar datamaskin og bruker et eksternt tastatur med mus

Hva er Spring Boot?

Java Spring Boot er et verktøy med åpen kildekode som gjør det enklere å bruke Java-baserte rammeverk til å opprette mikrotjenester og webprogrammer. For enhver definisjon av Spring Boot må samtalen starte med Java – et av de mest populære og mest brukte utviklingsspråkene og dataplattformene for utvikling av programmer. Utviklere over hele verden starter kodingsprosessen sin med å lære Java. Java er fleksibel og brukervennlig og er en utviklerfavoritt for en rekke programmer – alt fra sosiale medier, nettapper og spillapper til nettverk og bedriftsprogrammer.

Java- og Spring-rammeverket

Mens Java kan være enkelt å bruke og enklere å lære enn andre språk, har kompleksitetsnivået for å bygge, feilsøke og distribuere Java-programmer eskalert til stadig nye høyder. Dette skyldes det eksponentielle antallet variabler som moderne utviklere står overfor når de utvikler webprogrammer eller mobilapper for vanlige moderne teknologier, slik som musikkstrømming eller betalingsapper for mobil. En utvikler som skriver en grunnleggende bransjespesifikk app, må nå håndtere flere biblioteker, programtillegg, feillogging og håndtering av biblioteker, integrasjoner med nettjenester og flere språk, slik som C#, Java, HTML og andre. Forståelig nok er det en stor etterspørsel etter alle verktøy som vil effektivisere utviklingen av Java-programmer, noe som sparer utviklerne tid og penger.

Det er her programrammeverk kommer inn – de store basene med forhåndsskrevet kode som utviklere kan bruke og legge til i sin egen kode etter hvert som behovene dukker opp. Disse rammeverkene letter belastningen for utviklerne for nesten alle behov – enten de utvikler mobil- og webprogrammer eller arbeider med skrivebord og API-er. Rammeverk gjør det raskere, enklere og sikrere å utvikle programmer ved å levere gjenbrukbar kode og verktøy som bidrar til å knytte sammen de ulike elementene i et programvareutviklingsprosjekt.

Det er her Spring kommer inn: Spring er et prosjekt med åpen kildekode som gir en strømlinjeformet, modulær tilnærming til utvikling av programmer med Java. Familien av Spring-baserte prosjekter begynte i 2003 som et svar på kompleksiteten ved tidlig Java-utvikling, og gir støtte for utvikling av Java-programmer. Navnet Spring alene refererer vanligvis til selve programrammeverket, eller hele gruppen med prosjekter eller moduler. Java Spring Boot er en spesifikk modul som er bygget som en utvidelse av Spring-rammeverket.

Så med denne bakgrunnen for hvordan Spring-rammeverket, Spring Boot og Java fungerer sammen, finner du her definisjonen av Spring Boot – verktøyet som strømlinjeformer og gir raskere utvikling av webprogrammer og mikrotjenester i Java-rammeverket Spring.

Noen ganger, fordi språket og/eller plattformen er Java, blir det referert til som "Java Spring Boot," "Java Spring-rammeverket" eller "Spring Boot-rammeverket." Men fordi det finnes andre tredjeparts rammeverk for Java, for eksempel Play and Hibernate, er det riktigere å si "Spring" og "Spring Boot."

Se artikkelen Hva er Java?for en drøftelse på overordnet nivå om det grunnleggende i Java

Hva er forskjellen på Spring og Spring Boot?

Som nevnt tidligere er Spring et Java-basert programrammeverk med åpen kildekode som dekker mange mindre prosjekter under paraplyen. Andre populære Spring-prosjekter inkluderer Spring Data, Spring Cloud og Spring Security, bare for å nevne noen. For å forstå forskjellen på Spring Boot kontra Spring er det viktig å innse at selv om det kan være forskjeller i kjernefunksjoner, er alt innenfor Spring-familien.

For å få en fullstendig forståelse av forskjellene på Spring og Spring Boot må vi først definere noen viktige termer.

En person som ser på den bærbare datamaskinen.
En kvinne som ser på nettbrettet.

Hva er mikrotjenester?

MikrotjenesterMikrotjenester er en tilnærming til arkitektur for programvareutvikling. Ordet "mikro" i mikrotjenester refererer til at koden leveres i små, håndterbare deler eller komponenter, og hver "tjeneste" eller kjernefunksjon opprettes og distribueres uavhengig av de andre tjenestene. De uavhengige komponentene jobber sammen og kommuniserer gjennom forhåndsdefinerte API-dokumenter som kalles kontrakter. Den lille skalaen og relative isoleringen til disse mikrotjenestene har mange fordeler. Fordi denne typen arkitektur for eksempel er distribuert og løst sammenkoblet, bryter for eksempel ikke hele programmet sammen dersom én komponent feiler. Andre fordeler er økt produktivitet, enklere vedlikehold, enklere å tilpasse seg for bedriften og større feiltoleranse.

Hva er innsetting av avhengigheter?

Innsetting av avhengigheter (DI) er en designteknikk som brukes til å oppnå inversjon av kontroll (IoC). I objektorientert programmering som Java kalles objekter som er avhengige av andre objekter, for avhengigheter. Det mottakende eller avhengige objektet kalles vanligvis en klient, og objektet som klienten er avhengig av, kalles for en tjeneste. Innsetting av avhengigheter sender dermed tjenesten til klienten eller den "setter inn" avhengigheten ved hjelp av kode som kalles en injektor. DI fjerner behovet for at klienten må angi hvilken tjeneste som skal brukes –injektoren gjør denne jobben for klienten.

En person som ser på den bærbare datamaskinen og overvåker noe
En kvinne som har på seg et VR-headset

Hva er konvensjon over konfigurasjon?

Konvensjon over konfigurasjon, som noen ganger kalles koding etter konvensjoner, er et konsept som brukes i programrammeverk for å redusere antall beslutninger som en utvikler må ta. Den følger prinsippet om å "ikke gjenta seg selv" for å unngå skriving av overflødig kode. Koding etter konvensjoner forsøker å opprettholde fleksibilitet, samtidig som en utvikler bare trenger å skrive kode for de ukonvensjonelle delene av programmet han utvikler. Når den ønskede atferden til programmet samsvarer med etablerte konvensjonene, vil programmet kjøre som standard uten at man trenger å skrive konfigurasjonsfiler. Utvikleren trenger bare å skrive konfigurasjonsfiler eksplisitt dersom den ønskede atferden skiller seg fra "konvensjonen."

Spring-rammeverk kontra Spring Boot

Siden Spring Boot er bygd på fordelene med Spring-rammeverket, er det egentlig ikke et "enten/eller" -spørsmål om Spring kontra Spring Boot, men heller en "både/og" -fordel. Det er ikke Spring kontra Spring Boot; Spring og Spring Boot går hånd i hånd:
støtteplan for hele organisasjonen
Spring Spring Boot
Hva er det?

Et rammeverk for webprogrammer med åpen kildekode basert på Java.

En utvidelse eller modul bygget på Spring-rammeverket.

Hva gjør det?

Gir et fleksibelt, fullt konfigurerbart miljø ved hjelp av verktøy og biblioteker med forhåndsbygd kode for å utvikle tilpassede, løst sammenkoblede webprogrammer.

Gir muligheten til å skape frittstående Spring-programmer som bare kan kjøre umiddelbart uten behov for merknader, XML-konfigurasjon eller skriving av mye ekstra kode.

Når bør jeg bruke det?

Bruk Spring når du ønsker:

  • Fleksibilitet.
  • En ikke-meningsfylt tilnærming.*
  • Å fjerne avhengigheter fra tilpasset kode.
  • Å implementere en svært unik konfigurasjon.
  • Å utvikle bedriftsprogrammer.

Bruk Spring Boot når du ønsker:

  • Brukervennlighet.
  • En meningsfylt tilnærming.*
  • Å få i gang programmer av høy kvalitet raskt og redusere utviklingstiden.
  • Å unngå å skrive standardkode eller konfigurere XML.
  • Å utvikle REST-API-er.
Hva er hovedfunksjonen?

Innsetting av avhengigheter

Automatisk konfigurasjon

Har den innebygde servere?

Nei. I Spring må du konfigurere serverne eksplisitt.

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

Hvordan konfigureres det?

Spring-rammeverket gir fleksibilitet, men konfigurasjonen må bygges manuelt.

Spring Boot konfigurerer Spring og andre tredjeparts rammeverk automatisk med standardprinsippet "konvensjon over konfigurasjon" .

Må jeg vite hvordan jeg jobber med XML?

I Spring kreves det kunnskap om XML-konfigurasjon.

Spring Boot krever ikke XML-konfigurasjon.

Finnes det CLI-verktøy for utvikling/testing av programmer?

Spring-rammeverket alene tilbyr ikke CLI-verktøy for utvikling eller testing av programmer.

Som en Spring-modul har Spring Boot et CLI-verktøy for utvikling og testing av Spring-baserte programmer.

Fungerer det fra en meningsfylt eller ikke-meningsfylt tilnærming?

Ikke-meningsfylt*

Meningsfylt*

*Meningsfylt kontra ikke-meningsfylt tilnærming til rammeverk

Selv om ordet "meningsfylt" kan høres lett negativt ut, har både den meningsfylte tilnærmingen i Spring Boot og det ikke-meningsfulle Spring-rammeverket sine fordeler.

Meningsfylt tilnærming

En meningsfylt tilnærming tar utgangspunkt i at det er én måte som er langt enklere enn alle andre. Dermed vil programvaren, helt tiltenkt, begrense designere og oppfordre dem til å gjøre ting på en forhåndsdefinert måte.

Det gir en kjent bane, en anbefalt fremgangsmåte som vil fungere for de fleste og i de fleste situasjoner. Programmet er skrevet slik at det holder seg tett opp til disse anbefalte fremgangsmåtene og ofte bruke konvensjonene. En meningsfylt tilnærming gjør det å samarbeide og få hjelp med et kodeprosjekt mye enklere – andre utviklere som har erfaring med dette rammeverket, vil ha umiddelbar kjennskap til det nye programmet, og kan hoppe rett inn.

Ikke-meningsfylt tilnærming

En ikke-meningsfylt tilnærming tas i bruk hvis alle løsninger krever omtrent samme mengde innsats eller kompleksitet. Den tar i utgangspunkt i at det ikke finnes én riktig måte å komme frem til en løsning på et problem på. I stedet gir den fleksible verktøy som kan brukes til å løse problemet på mange ulike måter. Ikke-meningsfylte rammeverk har fordelen av å gi mye fleksibilitet i utviklingen, og de legger mer av kontrollen i utviklernes hender. Den største ulempen med så stor fleksibilitet er at utvikleren må ta flere beslutninger, og kan ende opp med å skrive mer kode fordi rammeverket er så åpent – og ikke-meningsfylt.

Funksjoner og fordeler med Spring Boot

Til slutt den spennende delen – kjernemulighetene som Java Spring Boot gir utover Spring-rammeverket. Spring Boot gir en enklere og raskere måte for å sette opp, konfigurere og kjøre programmer. Den eliminerer det tunge arbeidet med konfigurasjon som kreves for å sette opp de fleste Spring-baserte programmer. Utviklere kan hoppe rett inn og bruke Spring Boot uten å måtte lære det underliggende Spring-rammeverket.

En person som sitter på en stol og ser på skrivebordsskjermen

Slik bidrar Spring Boot-funksjoner til å strømlinjeforme programmeringsoppgaver i Java. Noen viktige funksjoner i Spring Boot er:

Fordeler med Spring Boot

Spring Boot:

Opplæringsprogrammer for Java Spring Boot

Hvis du allerede er kjent med å bygge programmer ved hjelp av Spring-rammeverket, vil du sannsynligvis synes det er enkelt å lære Spring Boot ved hjelp av opplæringsprogrammene, prosjektstarterne og dokumentasjonen i denne delen. Men her er noen gode nyheter hvis du har det travelt med å bruke Spring Boot, men ikke kjenner rammeverket ennå. Det er mulig å lære Spring Boot – og komme i gang med å jobbe med det – før du lærer Spring-rammeverket, fordi du vil plukke opp mange av de grunnleggende rammeverkene underveis. Selv om dette ikke lærer deg alt som er å vite om rammeverket, vil det gi deg et godt forsprang hvis du bestemmer deg for å lære det senere.

En annen fordel med å lære seg Spring Boot, i tillegg til at programutviklingen blir mye raskere og mer effektiv, er at det også gjør deg i stand til å bruke andre Spring-funksjoner, nemlig Spring Data, Project Reactor og Spring Security.

En person som snakker via en bærbar datamaskin ved hjelp av hodetelefoner
Når det er sagt, vil det være enklere å komme gjennom din første Spring Boot-opplæring hvis du først lærer deg hvordan de grunnleggende konseptene for innsetting av avhengigheter og inversjon av kontroll fungerer i Spring-rammeverket. Her er en oversikt på et svært overordnet nivå:

Innsetting av avhengigheter

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

Inversjon av kontroll (IoC)

  • ApplicationContext – rotgrensesnittet som fungerer som Spring IoC-beholder.
  • BeansFactory – grensesnittet for å få tilgang til Spring-beholderen.
  • Beans – objekter som opprettes, settes sammen og administreres av ApplicationContext.

Opplæring i Java Spring Boot for nybegynnere

Når du har mestret det grunnleggende, kan du vurdere å sjekke ut den fullstendig administrerte tjenesten Azure Spring Cloud fra Microsoft og VMware hvis du ønsker å bygge og distribuere Spring Boot-programmer i stor skala. Eller kom i gang umiddelbart med denne opplæringen om hvordan du sikrer Spring Boot-programmene med TLS/SSL-sertifikater.

Utvikle og bidra til å sikre et Java-program

Skap et Java-program med Spring Initializr ved hjelp av Spring Boot-starteren for Microsoft Entra ID (tidligere Azure Active Directory).

Distribuer dit første program til Azure Spring Cloud

Finn ut mer hvordan du skaper, klargjør og overvåker et enkelt Spring Boot-program bygget med Spring Initializr.

Bygg en enkel Spring Boot-mikrotjeneste

Utvikle og distribuer en enkel mikrotjeneste – og lær deretter å legge til Spring Cloud-teknologier i den.

Flere Spring Boot-startere

Legg til funksjoner for lagring, sikkerhet, godkjenning og nøkkelhvelv i Spring Boot-programmer.

Vanlige spørsmål

  • Spring Boot er et mikrotjenestebasert Java-nettrammeverk med åpen kildekode som tilbys av Spring, spesielt nyttig for programvareteknikere som utvikler webprogrammer og mikrotjenester.

  • "Spring Boot i Java" er en annen måte å si "Java Spring Boot"– de to termene kan brukes om hverandre. Java er språket og plattformen, Spring er programrammeverket basert på Java, og Spring Boot er en utvidelse av Spring-rammeverket, med noen ekstra fordeler.

  • Spring Boot har funksjonaliteten fra det generelle Spring-rammeverket, men Spring Boot krever ikke at du lærer deg Spring. En utvikler kan få et program i gang på kortere tid fordi Spring Boot-attributter konfigureres automatisk, og den meningsfylte tilnærmingen fjerner mye av standardkoden og konfigurasjonen som kreves ved programutvikling og -distribusjon i Spring.

  • Ja, som nevnt ovenfor er Spring Boot spesielt nyttig for en mikrotjenestetilnærming til arkitektur for programvareutvikling. Mikrotjenester er en populær måte å bygge små, autonome team som kan arbeide uavhengig – og i sin natur – fungerer mikrotjenester bare i serverdelen.

  • Redusert utviklingstid, økt produktivitet og brukervennlighet er bare noen av fordelene med å utvikle Spring Boot-programmer.

  • Det finnes mange opplæringer, hurtigstarter og mye dokumentasjon for Spring-nettstedet samt Spring Boot Starters og dokumentasjon fra Microsoft Azure. Hvis du vil komme i gang med å distribuere Spring Boot-programmer med en gang, kan du ta en titt på nettseminaret Få Spring Boot-programmer raskere ut i skyen i stor skala.

Når du er klar, konfigurerer vi en gratis konto til deg i Azure