Vårens ram förklaras på 5 minuter eller mindre

By rik

Spring Framework är ett resursstarkt, öppen källkodsbaserat ramverk för att bygga Java-applikationer. Det möjliggör skapandet av robusta och högpresterande applikationer på ett smidigt sätt.

Öppen källkod innebär att källkoden är tillgänglig för alla att granska, ändra och dela fritt.

Ett ramverk med öppen källkod fungerar som en grundmall för mjukvaruutveckling, skapad av en grupp utvecklare. Det finns olika typer av ramverk för olika ändamål, som att designa användargränssnitt, webbplatser och kärnapplikationer.

Om du är ny inom applikationsutveckling kan Spring Framework vara ett utmärkt ställe att börja. Denna artikel ger dig en introduktion till vad det är och hur du använder det.

Vad är Spring Framework?

Spring Framework är ett öppet källkodsramverk som används av utvecklare för att bygga affärsrelaterade Java-applikationer. Det skapades av Rod Johnson och lanserades 2003 under Apache 2.0-licensen.

Vissa programmerare anser att Java kan vara krångligt vid skapandet av grundläggande applikationer. Spring Framework är utformat för att förenkla den komplexa processen med att utveckla företagsapplikationer i Java.

Spring är omfattande. Därför är det fördelaktigt att ha en god förståelse för vad Spring Framework är innan du dyker ner i andra Spring-baserade projekt som Spring Boot, Spring GraphQL och Spring Cloud.

Varför använda Spring Framework?

  • Flexibelt. Ramverket erbjuder tekniker som aspektorienterad programmering (AOP), Dependency Injection (DI) och Plain Old Java Object (POJO). Detta gör att Spring kan användas för en rad olika syften.
  • Snabbt. Trots alla sina tekniker är Spring Framework lättviktigt, vilket gör det väl lämpat för att skapa skalbara och robusta företagsapplikationer.
  • Starkt community. Spring har en aktiv och engagerad community som är redo att ge support och lösningar vid behov.
  • Säkert. Spring är känt för sina säkerhetsfunktioner, och sårbarheter åtgärdas kontinuerligt genom regelbundna uppdateringar. Beroenden från tredje part övervakas noggrant för att säkerställa att de inte äventyrar kärnprocesserna.
  • Produktivt. Spring Framework effektiviserar utvecklingsprocessen för Java-baserade företagsapplikationer.

Funktioner i Spring

Stöd för aspektorienterad programmering

Aspektorienterad programmering (AOP) bidrar till en ökad modularitet när det gäller övergripande problem. AOP kompletterar även objektorienterad programmering (OOP).

Grundelementet för modularitet i AOP är aspekter, som hanterar tvärgående problem. Utvecklare kan på så sätt skapa deklarativa tjänster och anpassade aspekter.

Inversion of Control (IoC) Container

IoC-behållaren erbjuder ett förenklat sätt att hantera och konfigurera Java-objekt. Denna behållare hanterar livscykeln för definierade Java-objekt, vilket ökar omkonfigurerbarheten för Spring-baserade applikationer markant.

Inversion of Control använder beroendesökning eller beroendeinjektionsmönster för att leverera objektreferenser. IoC-behållaren levereras med den kod som behövs för konfigurationshantering.

Ramverk för dataåtkomst

Spring underlättar datakommunikationen genom sitt direkta stöd för Hibernate, JDBC och Java Persistence API (JPA), några av de mest använda ramverken för dataåtkomst i Java. Ramverket erbjuder även funktioner som resursinpackning, undantagshantering och resurshantering för alla dataåtkomstramverk som stöds.

Spring MVC Framework

Utvecklare kan använda detta ramverk för att skapa anpassade MVC-implementeringar som passar deras behov.

Kärnan i Spring MVC är DispatcherServlet-klassen, som hanterar användarförfrågningar och skickar dem vidare till rätt styrenhet. Styrenheten kan sedan bearbeta förfrågan, skapa en modell och presentera information till användaren via en specificerad vy.

Flera testramverk

Du kan testa dina Spring-baserade applikationer under utvecklingen med hjälp av mock-objekt, TestContext-ramverket eller Spring MVC-testet.

Språkstöd

Spring Framework stöder även Groovy och Kotlin.

Arkitektur i Spring

Spring Framework består av cirka 20 moduler. En fördel med detta ramverk är att du kan välja de moduler som är relevanta för ditt specifika användningsområde. Dessa moduler är indelade i Core Container, AOP (Aspect Oriented Programming), Data Access/Integration, Web, Instrumentation och Test.

Bildkälla: Spring.io

#1. Core Container

Kärnbehållaren i Spring Framework inkluderar modulerna Core, Beans, Context och Expression Language. Dessa är användbara på följande sätt:

  • Kärnmodulen utgör grunden för ramverket och innehåller funktioner för IoC och Dependency Injection.
  • Bean-modulen är känd för BeanFactory, en avancerad implementering av fabriksmönstret.
  • Kontextmodulen bygger på Core- och Bean-modulerna och ärver funktioner från Bean-modulen men utökar den med stöd för internationalisering.
  • Expression Language-modulen erbjuder ett kraftfullt uttrycksspråk för att manipulera och granska en objektgraf under körning.

#2. Dataåtkomst/Integration

Dataåtkomst/integrationslagret består av modulerna JDBC, ORM, OXM, JMS och Transaction. Dessa moduler hanterar följande:

  • JDBC-modulen har ett JDBC-abstraktionslager som förenklar JDBC-kodning och analyserar databasleverantörsspecifika felkoder.
  • ORM är ett integrationslager för flera populära objektrelationella mappnings-API:er som JPA, JDO, Hibernate och iBatis.
  • OXM-modulen är ett abstraktionslager som stöder objekt/XML-mappningsimplementeringar som XStream, JAXB, JiBX, Castor och XMLBeans.
  • Transaktionsmodulen erbjuder deklarativ och programmatisk transaktionshantering för klasser som implementerar särskilda gränssnitt.
  • Java Messaging Service-modulen (JMS) har funktioner för att producera och konsumera meddelanden.

#3. AOP (Aspect Oriented Programming) och instrumentering

Den här modulen inkluderar AOP Alliance-kompatibel aspektorienterad programmering, vilket förenklar definitionen av saker som metodinterceptorer. Instrumenteringsmodulen erbjuder klassladdare och klassinstrumenteringsstöd för användning i olika applikationsservrar.

#4. Web

Webblagret består av modulerna Web, Web-Servlet, Web-Struts och Web-Portlet.

  • Webbmodulen hanterar grundläggande webborienterade integrationsfunktioner, som stöd för flerdelade filuppladdningar.
  • Web-Servlet-modulen innehåller Springs MVC-implementering för webbapplikationer.
  • Web-Portlet-modulen speglar funktionerna i Web-Servlet-modulen och erbjuder MVC-implementering för portlet-miljöer.
  • Web-Socket-modulen stöder tvåvägskommunikation mellan server och klient i webbapplikationer.

#5. Test

Testmodulen är den sista delen av Springs arkitektur och stöder testning av Spring-komponenter med TestNG eller JUnit.

Installera Spring Framework

Kontrollera att Java är installerat

Innan du börjar arbeta med Spring Framework behöver du installera Spring på din dator. Spring-dokumentationen innehåller omfattande resurser om hur du kommer igång beroende på ditt operativsystem.

I det här fallet använder vi Ubuntu 20.04.5, ett Linux-baserat operativsystem.

Innan du installerar Spring bör du säkerställa att Java är installerat. Det gör du med följande kommando:

java -version

Om Java är installerat får du en utmatning som liknar den här skärmdumpen.

Om du inte har Java installerat finns det flera sätt att installera det baserat på dina behov.

Installera Spring-ramverket

Det finns olika sätt att installera Spring-ramverket, vilket beskrivs i Spring-dokumentationen.

I detta exempel använder vi GVM (Groovy Environment Manager). Du kan hämta GVM via GVMtool eller installera det via kommandoraden.

När du har GVM, använd följande kommandon för att installera och verifiera att Spring Framework är installerat:

gvm install springboot
spring --version

Om Spring är installerat får du en utmatning som ser ut ungefär så här:

Viktiga begrepp relaterade till Spring Framework

Beroendeinjektion

Dependency Injection (DI) är en funktion som gör det möjligt för utvecklare att skapa oberoende objekt utanför klassen. DI ger också användarna möjlighet att tillhandahålla dessa objekt till en klass på olika sätt.

Inversion of Control (IoC)

IoC är ett koncept som delegerar kontrollen av delar av ett program eller objekt till ett ramverk eller en container. I traditionell programmering anropar vår anpassade kod ett bibliotek. Med IoC kan istället ramverket (i det här fallet Spring) anropa vår anpassade kod och styra programmets flöde.

Aspektorienterad programmering (AOP)

AOP är en teknik för att bygga generella och återanvändbara rutiner som kan tillämpas i hela applikationen. Denna metod separerar repetitiva uppgifter (som datavalidering, loggning och felhantering) från den centrala applikationslogiken.

Resurser för att lära sig Spring Framework

#1. Reaktiv programmering med Spring Framework 5

Den här Spring-kursen inkluderar videor, artiklar och nedladdningsbara resurser. Kursen lär dig om funktionell programmering med Java, hur du använder mikrotjänster med Spring WebFlux, och hur du utnyttjar reaktiva typer i Spring Data MongoDB.

#2. Spring Framework Master Class

Spring Framework Master Class är en betalkurs som lär dig hur Java-projekt använder Spring Framework i praktiken. Du får lära dig hur du använder olika verktyg som Spring Boot, JUnit & Mockito, Spring JDBC, Spring AOP och Hibernate.

#3. Spring Framework i enkla steg

Spring Framework In Easy Steps är en premiumkurs som är perfekt för dig som vill skapa fullständiga Java EE-webbapplikationer med Spring Framework. Du kommer bland annat att lära dig hur du utvecklar webbapplikationer med Spring MVC, hur du använder Ajax-anrop med JQuery och Spring MVC, samt hur du använder Spring JDBC för databasoperationer.

#4. Spring Framework 5

Spring Framework 5-kursen är idealisk om du vill lära dig Spring Framework 5, Spring Data MongoDB, Spring Boot 2, Spring MVC, Spring Data JPA och Hibernate. Du kan dra nytta av de 57 timmarna av on-demand-videor, 13 artiklar och en mängd nedladdningsbart material.

Författarens kommentar

Java är fortfarande ett av de mest populära programmeringsspråken i dagens värld. Trots att nya språk introduceras ger ramverk som Spring nytt liv till Java och utökar dess användbarhet. Därför kommer troligtvis efterfrågan på Java-utvecklare att fortsätta, då de behövs både för att underhålla äldre kod och för att skapa nya applikationer.

Sammanfattning

Spring är ett av de ledande ramverken för Java EE och vi hoppas att du nu har en bättre förståelse för vad Spring Framework är, dess funktioner, arkitektur och hur det fungerar. Tillsammans med andra Spring-projekt erbjuder Spring Framework utvecklare en rad olika utvecklingsverktyg som kan användas i varierande utvecklingsmiljöer.