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.
Hvad er mikrotjenester?
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.
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
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:
| Brug Spring Boot, når du vil:
|
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.
Sådan hjælper Spring Boot-funktioner med at strømline Java-programmeringsopgaver. Nogle af de vigtigste funktioner i Spring Boot er:
-
Separate 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 målepunkter, tilstandskontrol og ekstern konfiguration.
Fordele ved Spring Boot
Spring Boot:
-
Reducerer udviklingstiden og øger produktiviteten – Spring Boot gør det meget nemmere at udvikle Spring-baserede apps med Java. Dets opinionated tilgang til Spring-strukturen reducerer den tid, der bruges på beslutninger og gentagne opgaver, og frigiver tid til at fokusere på at oprette og teste appsene.
-
Reducerer behovet for at skrive standardkode, anmærkninger og XML-konfiguration – Udviklere behøver ikke at generere kode eller konfigurere XML eller endda lære Spring-strukturen at kende, hvis de ikke vil.
-
Integrerer apps i Spring-projektfamilien – Spring Boot-apps integreres problemfrit med andre projekter i Spring-strukturøkosystemet – f.eks. Spring Data, Spring Cloud, Spring Security – samt med andre pålidelige cloudtjenester, f.eks. Microsoft Azure Spring Cloud.
-
Indeholder værktøjer til udvikling/test – Med Spring Boots værktøj til kommandolinjegrænseflade (CLI) 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 udviklingen nemmere – Spring Boot tilbyder plug-ins, så de kan arbejde med databaser i hukommelsen samt andre populære værktøjer til automatisering af builds, f.eks. Apache Maven.
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.
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
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.