org.springframework

1. Introduktion

Spring Framework giver en ren og udtryksfuld programmerings- og konfigurationsmodel til moderne Java-baserede virksomhedsapplikationer, der kan køre på enhver installationsplatform.

Denne artikel dækker det overordnede overblik over Spring-rammen og hovedsageligt org.springframework-pakken, der giver support til afhængighedsinjektion, transaktionsstyring, webapplikationer, dataadgang, messaging, test og mere.

2. Funktioner

Spring framework tilbyder en omfattende liste over funktioner:

  • Spring MVC-webapplikation og RESTful webtjenesteramme
  • Aspektorienteret programmering inklusive Spring's deklarative transaktionsstyring
  • Afhængighedsinjektion
  • Inversion af kontrol

og meget mere.

3. Maven-afhængigheder

Hvis du vil tilføje Spring til dit Maven-projekt, kan du finde flere oplysninger om det her.

4. Forårsprojekter

Rammen inkluderer en række forskellige moduler og projekter. Fra konfiguration til sikkerhed, webapps til store data - uanset infrastrukturbehovet i din applikation, der er et Spring Project, der hjælper dig med at opbygge det.

Start i det små, og brug netop det, du har brug for - Fjederen er modulopbygget. Lad os se på nogle af disse projekter her.

4.1. Spring Web MVC

Web MVC framework giver Model-View-Controller-arkitektur designet omkring en DispatcherServlet som håndterer alle HTTP-anmodninger og svar og gør applikationen løst koblet.

Det bedste ved det er, at det giver dig mulighed for at bruge ethvert objekt som en kommando eller et formobjekt - der er ikke behov for at implementere en rammespecifik grænseflade eller baseklasse. Dens databinding er meget fleksibel: for eksempel behandler den typefejltilpasning som valideringsfejl, der kan evalueres af applikationen, ikke som systemfejl.

Her kan du finde den komplette guide.

4.2. Spring IO-platform

IO Platform definerer et sæt afhængigheder (begge Spring Framework-afhængigheder som tredjepartsbiblioteker), der kan inkluderes i et Java-projekt, så du kan vælge de nødvendige afhængigheder uden at bekymre dig om kompatibilitet mellem deres versioner (fordi Spring IO garanterer det).

IO-platformen er certificeret til at arbejde med Java 7 og 8.

Se på GitHub-projektet.

4.3. Spring Boot

Spring Boot gør det nemt at oprette stand-alone, Spring-baserede applikationer i produktionskvalitet, som du “bare kan køre”. Det gør det meget nemt at oprette en fjederdrevet applikation med et minimum af arbejde.

En applikation oprettet med den kan stort set autokonfigureres med nogle fornuftige standardindstillinger, og derudover kan den forbedres med metrics (hvor mange anmodninger, hvor lang tid tog anmodninger osv.).

Den består af flere (valgfri) moduler:

  1. CLI - En kommandolinjegrænseflade, der er baseret på Groovy, til at starte / stoppe applikationer, der oprettes med fjederstarter.
  2. Boot Core - Basen for andre moduler.
  3. Autokonfiguration - Modul til automatisk konfiguration af en lang række forårsprojekter. Det registrerer en tilgængelighed af visse rammer (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Aktuator - Når dette projekt tilføjes, aktiveres visse virksomhedsfunktioner (Sikkerhed, metrics, standardfejlsider) til din applikation.
  5. Startere - Forskellige hurtigstartprojekter, der skal medtages som en afhængighed i din Maven- eller Gradle-buildfil. Det har de nødvendige afhængigheder til den type applikation. I øjeblikket er der startprojekter til et webprojekt (tomcat og anløbsbro), Spring Batch, Spring Data JPA, Spring Integration, Spring Security findes.
  6. Værktøjer - Byggeværktøjet Maven og Gradle samt den brugerdefinerede Spring Boot Loader (brugt i den enkelte eksekverbare krukke / krig) er inkluderet i dette projekt.

Vi kan finde Maven-artefakten her og se på GitHub-projektet.

4.4. Forårsdata

Spring Datas mission er at tilvejebringe en velkendt og konsistent, Spring-baseret programmeringsmodel til dataadgang, mens de stadig bevarer de særlige træk ved det underliggende datalager.

Det primære mål med dette projekt er at gøre det lettere at opbygge forårsdrevne applikationer, der bruger nye datatilgangsteknologier såsom ikke-relationelle databaser, kortreducerende rammer og skybaserede datatjenester samt giver forbedret support til relationsdatabase-teknologier .

Dette er et paraplyprojekt, der indeholder mange underprojekter, der er specifikke for en given database (som JPA, MongoDB, Redis, Apache Solr, Gemfire, Apache Cassandra). Projekterne er udviklet ved at arbejde sammen med mange af de virksomheder og udviklere, der står bag disse spændende teknologier.

4.5. Forårssikkerhed

Spring Security er en ramme, der fokuserer på at levere både godkendelse og autorisation til Java-applikationer. Som alle forårsprojekter findes den virkelige kraft i Spring Security i, hvor let det kan udvides til at imødekomme brugerdefinerede krav. Den frigives under en Apache 2.0-licens, så du med sikkerhed kan bruge den til dine projekter.

Det er også let at lære, implementere og administrere. Det har dedikeret sikkerhedsnavneområde, der giver direktiver til de fleste almindelige operationer, hvilket giver fuldstændig applikationssikkerhed på få få linjer XML og kan beskytte dine apps mod angreb som sessionfiksering, clickjacking, forfalskning på tværs af websteder osv

Spring Security er også integreret med mange andre Spring-teknologier, herunder Spring Web Flow, Spring Web Services og Pivotal tc Server.

Se på ofte stillede spørgsmål om forårssikkerhed for at få en dybere indsigt og siden Maven-afhængighed. Se også på Spring sikkerhedsvejledninger til godkendelse, registrering og opsætning af Spring Security med Maven.

4.6. Forår social

Spring Social er en udvidelse af rammen, der gør det muligt for applikationer at oprette forbindelse til Software-as-a-Service-udbydere som Twitter, Facebook og andre OAuth-godkendelsesbaserede API'er. Det giver en klar til brug OAuth-godkendelsesramme til webbaserede applikationer.

Funktioner:

  • En udvidelig ramme for tjenesteudbydere, der i høj grad forenkler processen med at forbinde lokale brugerkonti til hostede udbyderkonti.
  • En forbindelsescontroller, der håndterer godkendelsesflowet mellem din Java / Spring-webapplikation, en tjenesteudbyder og dine brugere.
  • Java-bindinger til populære tjenesteudbyder-API'er såsom Facebook, Twitter, LinkedIn, TripIt og GitHub.
  • En login-controller, der gør det muligt for brugere at godkende med din applikation ved at logge ind via en tjenesteudbyder.

Kom godt i gang guider:

  • Adgang til Facebook-data
  • Forår Social Twitter opsætning
  • Sekundær Facebook-login

Spring giver et par eksempler på GitHub-projekter, der får dig til at starte hurtigt, og Spring Social reference er også praktisk med en hurtig startside.

4.7. Spring Shell

Spring Shell er en interaktiv shell, der let kan udvides med kommandoer ved hjælp af en Spring-baseret programmeringsmodel.

Brugere af shell-projektet kan nemt bygge en komplet shell (aka kommandolinje) applikation ved at afhænge af Spring Shell-krukken og tilføje deres egne kommandoer (som kommer som metoder på springbønner). Oprettelse af et kommandolinjeprogram kan være nyttigt f.eks. at interagere med dit projekts REST API eller at arbejde med lokalt filindhold.

GitHub-projektet kan findes her.

4.8. Spring Mobile

Spring Mobile er en udvidelse af rammen og Spring Web MVC, der sigter mod at forenkle udviklingen af ​​mobile webapplikationer.

Spring Mobile er en ramme, der giver muligheder for at registrere den type enhed, der anmoder om dit Spring-websted og servere alternative visninger baseret på den enhed. Som alle forårsprojekter findes Spring Mobile's virkelige styrke i, hvor let det kan udvides.

Funktioner:

  • En enhedsopløsningsabstraktion til detektion af mobile enheder og tablet-enheder på serversiden
  • Webstedspræferencestyring, der giver brugeren mulighed for at angive, om han eller hun foretrækker en "normal", "mobil" eller "tablet" oplevelse
  • En webstedsomskifter, der er i stand til at skifte brugeren til det mest passende sted, enten mobil, tablet eller normalt, baseret på hans eller hendes enhed og eventuelt angivet en webstedsindstilling
  • Enhedsbevidst visningshåndtering til organisering og styring af forskellige visninger for bestemte enheder.

Denne prøveapplikation kommer hurtigt i gang.

Du kan også registrere en enhed, håndtere en webstedsindstilling eller tjene mobilt webindhold med Spring MVC.

4.9. Spring Batch

Spring Batch er en let og omfattende ramme, der sigter mod at muliggøre udvikling af batchapplikationer, der er vigtige for den daglige drift af virksomhedssystemer.

Batchapplikationer refererer i denne sammenhæng til automatiserede offline-systemer målrettet mod massedatabehandling. Spring Batch automatiserer denne grundlæggende batch iteration og giver mulighed for at behandle lignende transaktioner som et sæt, typisk i et offline miljø uden brugerinteraktion.

Spring Batch fungerer ved at læse data med en konfigurerbar klumpstørrelse fra en datakilde, behandle det og til sidst skrive det til en ressource.

Datakilden til læseren kan være flade filer (tekstfil, XML-fil, CSV-fil ...), relationsdatabase (MySQL ...), MongoDB.

Tilsvarende kan en forfatter skrive data til flade filer, relationsdatabaser, MongoDB, mailer osv.

Kom hurtigt i gang ved at oprette en batchtjeneste og med andre Spring-batchressourcer.

5. Kerneforårspakker

Lad os her kigge på kerneforårspakker.

  • org.springframework.cache - Denne pakke understøtter underpakker og klasser til deklarativ cachehåndtering, opsætning af open source-cache i koffeinbibliotek, supportklasser til open source-cache EhCache 2.x.

  • org.springframework.context - Denne pakke bygger på bønnepakken for at tilføje understøttelse af meddelelseskilder og for Observer-designmønsteret og muligheden for, at applikationsobjekter kan få ressourcer ved hjælp af en konsistent API.

  • org.springframework.core - Tilvejebringer grundlæggende klasser til undtagelseshåndtering og versionsdetektering og andre kernehjælpere, der ikke er specifikke for nogen del af rammen.

  • org.springframework.expression - Denne pakke giver kerneabstraktioner bag Spring udtryk sprog.

  • org.springframework.http - Denne pakke indeholder en grundlæggende abstraktion over HTTP på klienten / serversiden.

  • org.springframework.jdbc - Klasserne i denne pakke gør JDBC lettere at bruge og reducerer sandsynligheden for almindelige fejl.
  • org.springframework.jms - Denne pakke indeholder integrationsklasser for JMS, der giver mulighed for JMS-adgang til foråret.

  • org.springframework.jndi - Klasserne i denne pakke gør JNDI lettere at bruge, hvilket letter adgangen til konfiguration gemt i JNDI og giver nyttige superklasser til JNDI-adgangsklasser.

  • org.springframework.orm.hibernate5 - Pakke, der giver integration af Hibernate 5.x med Spring-koncepter.

  • org.springframework.test.util - Generelle hjælpeklasser til brug i test af enheder og integration.

Denne liste er begrænset og beskriver bare kernepakker til Spring framework. Du kan finde den komplette liste her.

6. Konklusion

I denne hurtige oversigtsartikel kiggede vi på forskellige projekter, der er til stede i Spring økosystem og lavede en rig samling af Maven-afhængigheder, GitHub-projekterne og de omfattende funktioner, hvert projekt tilbyder for at gøre vores webapps sikre, skalerbare og lette at leve med.

Vi kiggede også på kernepakker, der giver os magt til at fokusere på et logisk aspekt af vores apps.