org.springframework

1. Uvod

Spring Framework pruža čisti i izražajni model programiranja i konfiguracije za moderne poslovne programe utemeljene na Javi koji se mogu izvoditi na bilo kojoj platformi za implementaciju.

Ovaj članak pokriva pregled proljetnog okvira na visokoj razini i uglavnom paket org.springframework koji pruža podršku za uvođenje ovisnosti, upravljanje transakcijama, web aplikacije, pristup podacima, razmjenu poruka, testiranje i još mnogo toga.

2. Značajke

Proljetni okvir nudi sveobuhvatan popis značajki:

  • Proljetna MVC web aplikacija i RESTful okvir web usluga
  • Aspektno orijentirano programiranje, uključujući proljetno deklarativno upravljanje transakcijama
  • Injekcija ovisnosti
  • Inverzija kontrole

i mnogo više.

3. Ovisnosti Mavena

Ako želite dodati proljeće svom projektu Maven, više informacija o njemu možete pronaći ovdje.

4. Proljetni projekti

Okvir uključuje niz različitih modula i projekata. Od konfiguracije do sigurnosti, web aplikacija do velikih podataka - bez obzira na infrastrukturne potrebe vaše aplikacije, postoji Spring Project koji će vam pomoći da je izgradite.

Počnite s malim i koristite samo ono što vam treba - Proljeće je dizajnerski modularno. Pogledajmo ovdje neke od tih projekata.

4.1. Proljetni web MVC

Web MVC okvir pruža arhitekturu Model-View-Controller, dizajniranu oko a DispatcherServlet koji obrađuje sve HTTP zahtjeve i odgovore i čini aplikaciju labavo povezanom.

Najbolja stvar u vezi s tim je što vam omogućuje da koristite bilo koji objekt kao objekt naredbe ili obrasca - nema potrebe za implementacijom sučelja specifičnog za okvir ili osnovne klase. Njegovo je vezivanje podataka vrlo fleksibilno: na primjer, nepodudaranja tipova tretira kao pogreške u provjeri koje aplikacija može procijeniti, a ne kao sistemske pogreške.

Ovdje možete pronaći cjelovit vodič.

4.2. Proljetna IO platforma

IO Platform definira skup ovisnosti (obje ovisnosti Spring Framework-a kao biblioteke treće strane) koje bi mogle biti uključene u Java projekt kako bi vam omogućili odabir potrebnih ovisnosti bez brige o kompatibilnosti između njihovih verzija (jer Spring IO to jamči).

IO platforma certificirana je za rad s Javom 7 i 8.

Pogledajte projekt GitHub.

4.3. Proljetni čizme

Spring Boot olakšava stvaranje samostalnih, proizvodnih aplikacija utemeljenih na Springu koje možete "samo pokrenuti". Olakšava stvaranje aplikacije s proljetnim pogonom uz minimum rada.

Aplikacija stvorena s njom može se u velikoj mjeri automatski konfigurirati s nekim razumnim zadanim postavkama, a pored toga se može poboljšati pomoću mjernih podataka (koliko zahtjeva, koliko su zahtjevi trajali itd.).

Sastoji se od nekoliko (izbornih) modula:

  1. CLI - sučelje naredbenog retka, bazirano na Groovyju, za pokretanje / zaustavljanje aplikacija stvorenih s proljetnim pokretanjem.
  2. Boot Core - osnova za ostale module.
  3. Automatska konfiguracija - modul za automatsku konfiguraciju širokog raspona proljetnih projekata. Otkrivat će dostupnost određenih okvira (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Actuator - Ovaj će projekt, kada se doda, omogućiti određene značajke poduzeća (sigurnost, mjerne podatke, stranice zadane pogreške) vašoj aplikaciji.
  5. Početnici - različite brze početne projekte koji će se uključiti kao ovisnost u vašu datoteku gradnje Maven ili Gradle. Imat će potrebne ovisnosti za tu vrstu aplikacije. Trenutno postoje početni projekti za web projekt (zasnovan na tomcat i jetty), Spring Batch, Spring Data JPA, Spring Integration i Spring Security.
  6. Alati - U ovaj su projekt uključeni alat za izgradnju Maven i Gradle, kao i prilagođeni Load Boot Loader (korišten u jednoj izvršnoj jar / rat).

Ovdje možemo pronaći artefakt Maven i pogledati projekt GitHub.

4.4. Proljetni podaci

Misija Spring Data-a je pružiti poznati i dosljedni, programski model zasnovan na Spring-u za pristup podacima, a pritom zadržati posebne osobine temeljne pohrane podataka.

Primarni cilj ovog projekta je olakšati izgradnju aplikacija na proljeće koje koriste nove tehnologije za pristup podacima kao što su nerelacijske baze podataka, okviri za smanjenje karata i podatkovne usluge zasnovane na oblaku, kao i pružanje poboljšane podrške za tehnologije relacijskih baza podataka .

Ovo je krovni projekt koji sadrži mnoge potprojekte specifične za određenu bazu podataka (poput JPA, MongoDB, Redis, Apache Solr, Gemfire, Apache Cassandra). Projekti se razvijaju u suradnji s mnogim tvrtkama i programerima koji stoje iza ovih uzbudljivih tehnologija.

4.5. Proljetna sigurnost

Spring Security je okvir koji se fokusira na pružanje i provjere autentičnosti i autorizacije Java aplikacija. Kao i svi proljetni projekti, stvarna snaga Spring Securitya nalazi se u tome kako se lako može proširiti kako bi udovoljio prilagođenim zahtjevima. Objavljen je pod licencom Apache 2.0, tako da ga možete pouzdano koristiti u svojim projektima.

Također je lako naučiti, primijeniti i upravljati. Posjedovao je sigurnosni prostor imena koji pruža smjernice za najčešće operacije, omogućujući potpunu sigurnost aplikacija u samo nekoliko redaka XML-a i može zaštititi vaše aplikacije od napada poput fiksiranja sesija, klikanja, krivotvorenja zahtjeva s više web lokacija itd.

Spring Security također je integriran s mnogim drugim Spring tehnologijama, uključujući Spring Web Flow, Spring Web Services i Pivotal tc Server.

Pogledajte česta pitanja o proljetnoj sigurnosti kako biste imali dublji uvid i stranicu ovisnosti o Mavenu. Također, pogledajte proljetne sigurnosne vodiče za provjeru autentičnosti, registraciju i postavljanje Spring Security-a s Mavenom.

4.6. Proljetno druženje

Spring Social je proširenje okvira koji omogućuje aplikacijama povezivanje s pružateljima softvera kao usluge kao što su Twitter, Facebook i drugi API-ji utemeljeni na OAuth provjeri autentičnosti. Pruža okvir za provjeru autentičnosti OAuth spreman za upotrebu za web zasnovan program.

Značajke:

  • Proširivi okvir pružatelja usluga koji uvelike pojednostavljuje postupak povezivanja lokalnih korisničkih računa s računima hostiranih pružatelja usluga.
  • Kontroler za povezivanje koji upravlja protokom autorizacije između vaše Java / Spring web aplikacije, davatelja usluga i vaših korisnika.
  • Java vezi za popularne API-je davatelja usluga kao što su Facebook, Twitter, LinkedIn, TripIt i GitHub.
  • Kontroler za prijavu koji omogućuje korisnicima autentifikaciju pomoću vaše prijave prijavom putem davatelja usluga.

Vodiči za početak:

  • Pristup Facebook podacima
  • Proljetno postavljanje društvenog Twittera
  • Sekundarna Facebook prijava

Spring nudi nekoliko primjera GitHub projekata za brzo pokretanje, a korisne su i reference za Spring Social s brzom početnom stranicom.

4.7. Proljetna školjka

Spring Shell je interaktivna ljuska koja se lako može proširiti naredbama pomoću programskog modela temeljenog na Springu.

Korisnici školjkaškog projekta mogu lako izgraditi cjelovitu ljusku (zvani naredbeni redak), ovisno o jarku Spring Shell i dodavanju vlastitih naredbi (koje dolaze kao metode na proljetnom grahu). Stvaranje aplikacije naredbenog retka može biti korisno npr. za interakciju s REST API-jem vašeg projekta ili za rad sa lokalnim sadržajem datoteka.

GitHub projekt možete pronaći ovdje.

4.8. Proljetni mobitel

Spring Mobile je proširenje okvira i Spring Web MVC kojem je cilj pojednostaviti razvoj mobilnih web aplikacija.

Spring Mobile je okvir koji pruža mogućnosti otkrivanja vrste uređaja koji upućuje zahtjev na vaše web mjesto Spring i posluživanja alternativnih pogleda na temelju tog uređaja. Kao i svi proljetni projekti, stvarna snaga Spring Mobilea nalazi se u tome kako se lako može proširiti.

Značajke:

  • Apstrakcija razrješivača uređaja za detekciju mobilnih i tablet uređaja na strani poslužitelja
  • Upravljanje preferencama web mjesta koje omogućava korisniku da navede da li više voli "normalno", "mobilno" ili "tablet" iskustvo
  • Prebacivač web mjesta koji može prebaciti korisnika na najprikladniju web lokaciju, mobilnu, tabletnu ili uobičajenu, na temelju njegovog uređaja, a prema želji je naznačio i postavku web lokacije
  • Upravljanje prikazom s obzirom na uređaje za organiziranje i upravljanje različitim prikazima za određene uređaje.

Ovim primjerom aplikacije brzo ćete započeti.

Također možete otkriti uređaj, upravljati postavkama web mjesta ili posluživati ​​mobilni web sadržaj s Spring MVC.

4.9. Proljetna serija

Spring Batch lagan je, sveobuhvatan okvir usmjeren na omogućavanje razvoja batch aplikacija vitalnih za svakodnevno poslovanje poduzeća.

Skupne aplikacije u ovom se kontekstu odnose na automatizirane izvanmrežne sustave usmjerene na skupnu obradu podataka. Spring Batch automatizira ovu osnovnu serijsku iteraciju pružajući mogućnost obrade sličnih transakcija u kompletu, obično u izvanmrežnom okruženju bez ikakve interakcije korisnika.

Spring Batch radi čitanjem podataka s podesivom veličinom komada iz izvora podataka, obrađuje ih i konačno zapisuje u resurs.

Izvor podataka za čitač mogu biti ravne datoteke (tekstualna datoteka, XML datoteka, CSV datoteka ...), relacijska baza podataka (MySQL ...), MongoDB.

Slično tome, pisac može zapisati podatke u ravne datoteke, relacijske baze podataka, MongoDB, mailer itd.

Brzo započnite stvaranjem batch usluge i ostalim proljetnim batch resursima.

5. Osnovni proljetni paketi

Evo, pogledajmo osnovne proljetne pakete.

  • org.springframework.cache - Ovaj paket podržava potpakete i klase za deklarativno upravljanje predmemorijom, postavljanje predmemorije otvorenog koda u biblioteci kofeina, klase podrške za predmemoriju otvorenog koda EhCache 2.x.

  • org.springframework.context - Ovaj se paket nadovezuje na paket grah za dodavanje podrške za izvore poruka i za obrazac dizajna Observer, te sposobnost objektima aplikacije za dobivanje resursa pomoću dosljednog API-ja.

  • org.springframework.core - pruža osnovne klase za rukovanje iznimkama i otkrivanje verzija te ostale pomoćnike u jezgri koji nisu specifični za bilo koji dio okvira.

  • org.springframework.expression - ovaj paket pruža osnovne apstrakcije iza Proljetni jezik izražavanja.

  • org.springframework.http - Ovaj paket sadrži osnovnu apstrakciju preko HTTP-a na strani klijenta / poslužitelja.

  • org.springframework.jdbc - Klase u ovom paketu čine JDBC lakšim za upotrebu i smanjuju vjerojatnost čestih pogrešaka.
  • org.springframework.jms - Ovaj paket sadrži klase integracije za JMS, omogućujući JMS pristup u proljetnom stilu.

  • org.springframework.jndi - Klase u ovom paketu čine JNDI lakšom za upotrebu, olakšavajući pristup konfiguraciji pohranjenoj u JNDI i pružaju korisne superklase za JNDI pristupne klase.

  • org.springframework.orm.hibernate5 - paket koji omogućuje integraciju Hibernate 5.x s Spring konceptima.

  • org.springframework.test.util - Opće klase korisnosti za upotrebu u jedinstvenim i integracijskim testovima.

Ovaj je popis ograničen i samo opisuje osnovne pakete za Spring framework. Cjelovit popis možete pronaći ovdje.

6. Zaključak

U ovom kratkom preglednom članku pogledali smo razne projekte koji su prisutni u proljetnom ekosustavu i napravili bogatu kolekciju Mavenovih ovisnosti, GitHub projekte i sveobuhvatne značajke koje svaki projekt nudi kako bi naše web aplikacije učinile sigurnim, skalabilnim i lakim za korištenje. živjeti sa.

Također smo pogledali osnovne pakete koji nam pružaju moć da se usredotočimo na logični aspekt naših aplikacija.