org.springframework

1. Introduksjon

Spring Framework gir en ren og uttrykksfull programmerings- og konfigurasjonsmodell for moderne Java-baserte bedriftsapplikasjoner som kan kjøres på hvilken som helst distribusjonsplattform.

Denne artikkelen dekker overordnet oversikt over Spring-rammeverket og hovedsakelig org.springframework-pakken som gir støtte for avhengighetsinjeksjon, transaksjonsadministrasjon, webapplikasjoner, datatilgang, meldinger, testing og mer.

2. Funksjoner

Spring framework tilbyr en omfattende liste over funksjoner:

  • Våren MVC webapplikasjon og RESTful rammeverk for webtjenester
  • Aspektorientert programmering inkludert Spring's deklarative transaksjonsstyring
  • Avhengighetsinjeksjon
  • Inversjon av kontroll

og mye mer.

3. Maven-avhengigheter

Hvis du vil legge til Spring i Maven-prosjektet ditt, kan du finne mer informasjon om det her.

4. Vårprosjekter

Rammeverket inkluderer en rekke forskjellige moduler og prosjekter. Fra konfigurasjon til sikkerhet, webapper til store data - uansett hvilken infrastrukturbehov applikasjonen din måtte ha, er det et vårprosjekt som hjelper deg med å bygge det.

Begynn i det små og bruk akkurat det du trenger - våren er modulær av design. La oss se på noen av disse prosjektene her.

4.1. Spring Web MVC

Web MVC framework gir Model-View-Controller-arkitektur, designet rundt en DispatcherServlet som håndterer alle HTTP-forespørsler og svar og gjør applikasjonen løst koblet.

Det beste med det er at det lar deg bruke et hvilket som helst objekt som et kommando- eller skjemaobjekt - det er ikke nødvendig å implementere et rammespesifikt grensesnitt eller baseklasse. Databindingen er svært fleksibel: for eksempel behandler den typefeil som valideringsfeil som kan evalueres av applikasjonen, ikke som systemfeil.

Her kan du finne den komplette guiden.

4.2. Vår IO-plattform

IO Platform definerer et sett avhengigheter (begge Spring Framework-avhengigheter som tredjepartsbiblioteker) som kan inkluderes i et Java-prosjekt, slik at du kan velge de nødvendige avhengighetene uten å bekymre deg for kompatibilitet mellom versjonene (fordi Spring IO garanterer det).

IO-plattformen er sertifisert for å fungere med Java 7 og 8.

Ta en titt på GitHub-prosjektet.

4.3. Vårstøvel

Spring Boot gjør det enkelt å lage frittstående, produksjonsklasse Spring-baserte applikasjoner som du bare kan kjøre. Det gjør det veldig enkelt å lage en vårdrevet applikasjon med et minimum av arbeid.

Et program opprettet med det kan i stor grad autokonfigureres med noen fornuftige standardinnstillinger, og ved siden av kan det forbedres med beregninger (hvor mange forespørsler, hvor lang tid tok forespørsler etc.).

Den består av flere (valgfrie) moduler:

  1. CLI - Et kommandolinjegrensesnitt, basert på Groovy, for å starte / stoppe fjærstartsprogrammer.
  2. Boot Core - Basen for andre moduler.
  3. Autokonfigurering - Modul for automatisk konfigurering av et bredt spekter av vårprosjekter. Det vil oppdage tilgjengeligheten av visse rammer (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Aktuator - Dette prosjektet, når det blir lagt til, vil aktivere visse virksomhetsfunksjoner (Sikkerhet, beregninger, standardfeilsider) til applikasjonen din.
  5. Forretter - Ulike hurtigstartprosjekter som skal inkluderes som en avhengighet i din Maven- eller Gradle-byggfil. Det vil ha de nødvendige avhengighetene for den typen applikasjoner. For tiden er det startprosjekter for et webprosjekt (tomcat og bryggebasert), Spring Batch, Spring Data JPA, Spring Integration, Spring Security eksisterer.
  6. Verktøy - Maven og Gradle byggeverktøyet samt den tilpassede Spring Boot Loader (brukt i den eneste kjørbare krukken / krigen) er inkludert i dette prosjektet.

Vi finner Maven-gjenstanden her og ser på GitHub-prosjektet.

4.4. Vårdata

Spring Datas oppgave er å tilby en kjent og konsistent, vårbasert programmeringsmodell for datatilgang mens du fremdeles beholder de spesielle egenskapene til den underliggende datalageret.

Det primære målet med dette prosjektet er å gjøre det lettere å bygge vårdrevne applikasjoner som bruker nye datatilgangsteknologier som ikke-relasjonelle databaser, kartreduserende rammer og skybaserte datatjenester, samt gi forbedret støtte for relasjonelle databaseteknologier .

Dette er et paraplyprosjekt som inneholder mange delprosjekter som er spesifikke for en gitt database (som JPA, MongoDB, Redis, Apache Solr, Gemfire, Apache Cassandra). Prosjektene er utviklet ved å samarbeide med mange av selskapene og utviklerne som står bak disse spennende teknologiene.

4.5. Vårsikkerhet

Spring Security er et rammeverk som fokuserer på å gi både autentisering og autorisasjon til Java-applikasjoner. Som alle vårprosjekter, finnes den virkelige kraften til Spring Security i hvor enkelt den kan utvides for å møte tilpassede krav. Den er utgitt under en Apache 2.0-lisens, slik at du trygt kan bruke den i prosjektene dine.

Det er også enkelt å lære, distribuere og administrere. Den har dedikert sikkerhetsnavneområde som gir direktiver for de vanligste operasjonene, og tillater fullstendig applikasjonssikkerhet på bare noen få linjer med XML og kan beskytte appene dine mot angrep som øktfiksering, clickjacking, forfalskning på tvers av nettsteder, etc.

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

Ta en titt på ofte stilte spørsmål om vårsikkerhet for å få en dypere innsikt og Maven-avhengighetssiden. Ta også en titt på vårsikkerhetsveiledninger for autentisering, registrering og oppsett vårsikkerhet med Maven.

4.6. Spring Social

Spring Social er en utvidelse av rammeverket som gjør det mulig for applikasjoner å koble seg til programvare-som-en-tjenesteleverandører som Twitter, Facebook og andre OAuth-autentiseringsbaserte API-er. Det gir et klart å bruke OAuth-godkjenningsrammeverk for nettbaserte applikasjoner.

Funksjoner:

  • Et utvidbart rammeverk for tjenesteleverandører som i stor grad forenkler prosessen med å koble lokale brukerkontoer til vertsleverandørkontoer.
  • En tilkoblingskontroller som håndterer autorisasjonsflyten mellom Java / Spring-webapplikasjonen, en tjenesteleverandør og brukerne dine.
  • Java-bindinger til populære tjenesteleverandør-APIer som Facebook, Twitter, LinkedIn, TripIt og GitHub.
  • En påloggingskontroller som gjør det mulig for brukere å autentisere seg med applikasjonen din ved å logge på via en tjenesteleverandør.

Komme i gang-guider:

  • Få tilgang til Facebook-data
  • Vårt sosialt Twitter-oppsett
  • Sekundær Facebook-pålogging

Våren gir ganske mange eksempler på GitHub-prosjekter for å få deg til å starte raskt, og vårsosiale referanse er også praktisk med en rask startside.

4.7. Vårskall

Spring Shell er et interaktivt skall som enkelt kan utvides med kommandoer ved hjelp av en vårbasert programmeringsmodell.

Brukere av skallprosjektet kan enkelt bygge et fullverdig skall (aka kommandolinje) applikasjon ved å avhenge av Spring Shell-krukken og legge til sine egne kommandoer (som kommer som metoder på vårbønner). Å lage et kommandolinjeprogram kan være nyttig f.eks. å samhandle med prosjektets REST API, eller å jobbe med lokalt filinnhold.

GitHub-prosjektet finner du her.

4.8. Spring Mobile

Spring Mobile er en utvidelse av rammeverket og Spring Web MVC som tar sikte på å forenkle utviklingen av mobile webapplikasjoner.

Spring Mobile er et rammeverk som gir muligheter for å oppdage hvilken type enhet som sender en forespørsel til Spring-nettstedet ditt og vise alternative visninger basert på den enheten. Som alle vårprosjekter, er den virkelige kraften til Spring Mobile i hvor lett den kan utvides.

Funksjoner:

  • En abstraksjon for enhetsoppløsning for deteksjon av servere og mobile enheter på nettbrett
  • Administrasjon av nettstedsinnstillinger som lar brukeren indikere om han eller hun foretrekker en "normal", "mobil" eller "nettbrett" opplevelse
  • En nettstedsbryter som er i stand til å bytte brukeren til det mest hensiktsmessige nettstedet, enten mobil, nettbrett eller normalt, basert på hans eller hennes enhet og eventuelt angitt en nettstedinnstilling
  • Enhetsbevisst visningsadministrasjon for å organisere og administrere forskjellige visninger for bestemte enheter.

Dette eksempelet på applikasjonen vil komme deg i gang raskt.

Du kan også oppdage en enhet, håndtere en nettsideinnstilling eller servere mobilinnhold med Spring MVC.

4.9. Vårparti

Spring Batch er et lett og omfattende rammeverk rettet mot å muliggjøre utvikling av batch-applikasjoner som er avgjørende for den daglige driften av bedriftssystemer.

Batchapplikasjoner i denne sammenheng refererer til automatiserte frakoblede systemer rettet mot massedatabehandling. Spring Batch automatiserer denne grunnleggende batch-iterasjonen, og gir muligheten til å behandle lignende transaksjoner som et sett, vanligvis i et offline miljø uten brukerinteraksjon.

Spring Batch fungerer ved å lese data med en konfigurerbar delstørrelse fra en datakilde, behandle dem og til slutt skrive dem til en ressurs.

Datakilden for leseren kan være flate filer (tekstfil, XML-fil, CSV-fil ...), relasjonsdatabase (MySQL ...), MongoDB.

På samme måte kan en forfatter skrive data til flate filer, relasjonsdatabaser, MongoDB, mailer etc.

Kom raskt i gang ved å opprette en batchtjeneste og med andre Spring batch-ressurser.

5. Core Spring Packages

Her, la oss ta en titt på kjernevårpakker.

  • org.springframework.cache - Denne pakken støtter underpakker og klasser for deklarativ cacheadministrasjon, konfigurering av åpen kildekodebuffer i koffeinbiblioteket, støtteklasser for åpen kildekodebuffer EhCache 2.x.

  • org.springframework.context - Denne pakken bygger på bønnepakken for å legge til støtte for meldingskilder og for Observer-designmønsteret, og muligheten for applikasjonsobjekter til å skaffe ressurser ved hjelp av et konsistent API.

  • org.springframework.core - Tilbyr grunnleggende klasser for unntakshåndtering og versjonsgjenkjenning og andre kjernehjelpere som ikke er spesifikke for noen del av rammeverket.

  • org.springframework.expression - Denne pakken gir kjerneabstraksjoner bak Våruttrykk språk.

  • org.springframework.http - Denne pakken inneholder en grunnleggende abstraksjon over HTTP på klient / server-side.

  • org.springframework.jdbc - Klassene i denne pakken gjør JDBC enklere å bruke og reduserer sannsynligheten for vanlige feil.
  • org.springframework.jms - Denne pakken inneholder integrasjonsklasser for JMS, slik at du får tilgang til JMS i vårstil.

  • org.springframework.jndi - Klassene i denne pakken gjør JNDI enklere å bruke, noe som letter tilgang til konfigurasjon som er lagret i JNDI, og gir nyttige superklasser for JNDI-tilgangsklasser.

  • org.springframework.orm.hibernate5 - Pakke som gir integrering av Hibernate 5.x med Spring-konsepter.

  • org.springframework.test.util - Generelle verktøyklasser for bruk i enhets- og integrasjonstester.

Denne listen er begrenset og beskriver bare kjernepakker for Spring framework. Du finner den komplette listen her.

6. Konklusjon

I denne raske oversiktsartikkelen så vi på forskjellige prosjekter som er til stede i Spring økosystem og laget en rik samling av Maven-avhengigheter, GitHub-prosjektene, og de omfattende funksjonene hvert prosjekt tilbyr for å gjøre webappene våre sikre, skalerbare og enkle å leve med.

Vi så også på kjernepakker som gir oss makt til å fokusere på et logisk aspekt av appene våre.


$config[zx-auto] not found$config[zx-overlay] not found