Спринг Фрамеворк објашњен за 5 минута или мање

Spring Framework je snažan okvir otvorenog koda namenjen razvoju Java aplikacija, koji pojednostavljuje izradu pouzdanih aplikacija visokih performansi.

Pod otvorenim kodom podrazumeva se softver čiji je izvorni kod slobodno dostupan, što korisnicima omogućava da mu pristupaju, menjaju ga i dele bez ograničenja.

Okvir aplikacije otvorenog koda predstavlja šablon za razvoj softvera koji kreira tim programera. Postoje razne vrste šablona, namenjene različitim svrhama, poput izrade korisničkih interfejsa, web stranica i osnovnih softverskih aplikacija.

Ukoliko ste novi u svetu razvoja aplikacija, započinjanje rada sa Spring Frameworkom može biti odličan prvi korak. U ovom tekstu ćete saznati šta je ovaj okvir i kako se koristi.

Šta je Spring Framework?

Spring Framework je okvir otvorenog koda koji programeri koriste za izradu poslovnih Java aplikacija. Ovaj okvir je razvio Rod Džonson i objavljen je 2003. godine pod Apache 2.0 licencom.

Pojedini programeri kritizuju Javu i tvrde da je komplikovano napraviti osnovne aplikacije. Spring Framework ima za cilj da pojednostavi kompleksan proces razvoja poslovnih Java aplikacija.

Spring je opsežan. Stoga je preporučljivo prvo razumeti šta je Spring Framework pre nego što počnete da koristite druge Spring projekte, poput Spring Boot, Spring GraphQL i Spring Cloud.

Zašto koristiti Spring Framework?

  • Fleksibilan. Ovaj okvir nudi tehnologije kao što su aspektno orijentisano programiranje (AOP), injekcija zavisnosti (DI) i Plain Old Java Object (POJO). Stoga možete koristiti Spring za postizanje različitih ciljeva.
  • Brz. Iako poseduje sve navedene tehnologije, Spring Framework je i dalje lagan, što ga čini idealnim za izradu skalabilnih i pouzdanih web aplikacija za preduzeća.
  • Velika zajednica. Spring ima raznovrsnu zajednicu, kojoj se možete obratiti za pomoć i rešenja u trenutku kada vam zatreba.
  • Siguran. Spring je poznat po svojim bezbednosnim mehanizmima, a ranjivosti se redovno popravljaju učestalim zakrpama. Zavisnosti trećih strana se stalno prate kako bi se osiguralo da njihove ranjivosti ne narušavaju osnovni proces.
  • Produktivnost. Spring Framework pojednostavljuje iskustvo razvoja Java aplikacija za preduzeća.

Karakteristike Springa

Podržava aspektno orijentisano programiranje

Aspektno orijentisano programiranje pruža veću modularnost za sveobuhvatne probleme. AOP takođe nadopunjuje objektno orijentisano programiranje.

Glavna jedinica modularnosti u AOP-u je sveobuhvatna briga (Aspekt). Programeri tako mogu kreirati deklarativne usluge preduzeća i prilagođene aspekte.

Inverzija kontrolnog (IoC) kontejnera

IoC kontejner pruža pojednostavljen način upravljanja i konfigurisanja Java objekata. Životnim ciklusom definisanog Java objekta upravlja ovaj kontejner, što značajno poboljšava mogućnost rekonfiguracije aplikacije zasnovane na Springu.

Inverzija kontrole koristi traženje zavisnosti ili obrasce injekcije zavisnosti da bi ponudila referentno vreme izvršavanja objekta. IoC kontejner sadrži asemblerski kod potreban za upravljanje konfiguracijom.

Okvir za pristup podacima

Proces komunikacije podataka je pojednostavljen, jer Spring ima direktnu podršku za Hibernate, JDBC i Java Persistence API (JPA), neke od najpopularnijih okvira za pristup podacima u Javi. Takođe, možete se osloniti na ovaj okvir da obezbedi funkcije kao što su premotavanje resursa, obrada izuzetaka i upravljanje resursima za sve podržane okvire za pristup podacima.

Spring MVC okvir

Programeri mogu da koriste ovaj okvir zasnovan na zahtevima za kreiranje prilagođenih MVC implementacija koje odgovaraju njihovim potrebama.

Klasa DispatcherServlet, koja je zadužena za obradu korisničkih zahteva i njihovo prosleđivanje odgovarajućem kontroleru, predstavlja suštinu Spring MVC-a. Kontrolor zatim može obraditi zahtev, kreirati model i prezentovati informacije krajnjem korisniku kroz određeni prikaz.

Ima nekoliko test okvira

Svoje aplikacije zasnovane na Springu možete testirati tokom razvoja, koristeći mock objekte, TestContext okvir ili Spring MVC test.

Jezička podrška

Spring Framework podržava Groovy i Kotlin.

Spring Arhitektura

Spring Framework se sastoji od oko 20 modula. Prednost ovog okvira je to što vam omogućava da odaberete module koji su relevantni za vaš slučaj upotrebe. Ovi moduli su grupisani u Core Container, AOP (Aspect Oriented Programming), Pristup podacima/Integracija, Web, Instrumentacija i Test.

Slika preuzeta sa: Spring.io

#1. Core Container

Osnovni kontejner Spring Frameworka sadrži modele Core, Beans, Context i Expression Language. Ovi jezički modeli su korisni na sledeće načine:

  • Modul Core je osnovni deo okvira. U jezgru ćete pronaći IoC i funkcije injekcije zavisnosti.
  • Modul Beans je poznat po BeanFactory, sofisticiranoj implementaciji fabričkog obrasca.
  • Modul Context je izgrađen na Core i Bean modulima. Ovaj modul nasleđuje svoje karakteristike od Bean modula, ali dodaje podršku za internacionalizaciju.
  • Modul Expression Language nudi snažan jezik izraza za manipulaciju i ispitivanje grafova objekata tokom izvršavanja.

#2. Pristup podacima/Integracija

JDBC, ORM, OXM, JMS i Transakcioni moduli čine sloj pristupa podacima/integracije. Ovi moduli obavljaju sledeće:

  • JDBC modul ima sloj JDBC apstrakcije koji eliminiše potrebu za napornim JDBC kodiranjem, kao i za raščlanjivanjem kodova grešaka specifičnih za bazu podataka.
  • ORM je integracioni sloj za neke od popularnih API-ja za mapiranje objekata, kao što su JPA, JDO, Hibernate i iBatis.
  • OXM modul je sloj apstrakcije koji podržava implementacije mapiranja objekata/XML za XStream, JAXB, JiBX, Castor i XMLBeans.
  • Transakcioni modul podržava deklarativno i programsko upravljanje transakcijama za klase koje implementiraju posebne interfejse.
  • Modul Java Messaging Service (JMS) ima funkcije za kreiranje i konzumiranje poruka.

#3. AOP (Aspect Oriented Programming) i instrumentacija

Ovaj modul sadrži implementaciju aspektno orijentisanog programiranja u skladu sa AOP Alijansom, što olakšava definisanje stvari kao što su presretači metoda. Sa druge strane, modul Instrumentation nudi podršku za učitavanje klasa i instrumentaciju klasa koja se koristi na određenim serverima aplikacija.

#4. Web

Web, Web-Servlet, Web-Struts i Web-Portlet moduli čine Web sloj.

  • Web modul je odgovoran za osnovne funkcije integracije orijentisane na web, kao što je funkcionalnost višedelnog otpremanja datoteka.
  • Web-Servlet modul karakteriše Spring MVC implementacija za web aplikacije.
  • Modul Web-Portlet odražava funkcionalnost Web-Servlet modula. Modul Web-Portlet nudi implementaciju MVC-a koja se koristi u okruženju portleta.
  • Web-Socket modul podržava dvosmernu komunikaciju između servera i klijenta u web aplikacijama.

#5. Test

Modul Test je poslednji deo Spring arhitekture. To je modul koji podržava testiranje Spring komponenti sa TestNG ili JUnit.

Instalacija Spring Frameworka

Proverite da li je Java instalirana

Pre nego što naučimo kako Spring Framework funkcioniše, moramo da instaliramo Spring na naš računar. Spring dokumentacija sadrži opširne resurse o tome kako započeti, u zavisnosti od vašeg operativnog sistema.

U ovom slučaju koristićemo Ubuntu 20.04.5, operativni sistem zasnovan na Linuxu.

Pre instaliranja Springa, proverite da li imate instaliranu Javu pomoću sledeće komande:

java -version

Ako imate instaliranu Javu, dobićete izlaz sličan ovom na snimku ekrana.

Ako je nemate na računaru, postoji nekoliko načina za instaliranje Jave, u zavisnosti od vaših potreba.

Instalirajte Spring Framework

Postoji nekoliko načina za instaliranje Spring Frameworka, kao što je navedeno u Spring dokumentaciji.

U ovom slučaju koristićemo GVM (Groovy Environment Manager). GVM možete dobiti pomoću GVMtool-a ili ga instalirati putem komandne linije.

Kada imate GVM, koristite sledeće komande da biste instalirali i proverili da li je Spring Framework instaliran:

gvm install springboot
spring --version

Verovatno ćete dobiti izlaz koji izgleda ovako, ako je Spring instaliran:

Važni termini povezani sa Spring Frameworkom

Injekcija zavisnosti

Injekcija zavisnosti je funkcija koja programerima omogućava da kreiraju nezavisne objekte izvan klase. DI takođe omogućava korisnicima da obezbede te objekte klasi na razne načine.

Inverzija kontrole (IoC)

IoC je koncept koji prenosi kontrolu nad delovima programa ili objektima na okvir ili kontejner. U tradicionalnom programiranju, naš prilagođeni kod upućuje pozive biblioteci. Sa druge strane, IoC omogućava okviru (u ovom slučaju Springu) da poziva naš prilagođeni kod i kontroliše tok programa.

Aspektno orijentisano programiranje (AOP)

AOP je tehnika za izgradnju uobičajenih rutina za višekratnu upotrebu koje se mogu primeniti u celoj aplikaciji. Takav pristup odvaja ponavljajuće zadatke (kao što su validacija unosa, evidentiranje i obrada grešaka) od osnovne logike aplikacije.

Resursi za učenje Spring Frameworka

#1. Reaktivno programiranje sa Spring Framework 5

Ovaj Spring kurs se sastoji od video zapisa, članaka i resursa za preuzimanje. Kurs podučava funkcionalno programiranje sa Javom, kako koristiti mikroservise sa Spring WebFlux-om i kako koristiti reaktivne tipove u Spring Data MongoDB.

#2. Master Class Spring Framework

Master Class Spring Framework je plaćeni kurs koji podučava pravi način na koji Java projekti koriste Spring Framework. Naučićete kako da koristite različite alate, kao što su Spring Boot, JUnit & Mockito, Spring JDBC, Spring AOP i Hibernate.

#3. Spring Framework u jednostavnim koracima

Spring Framework In Easy Steps je idealan premium kurs ako želite da kreirate End to End Java EE web aplikacije koristeći Spring Framework. Neke od stvari koje ćete naučiti su kako da razvijete web aplikacije koristeći Spring MVC, kako da uputite Ajax poziv koristeći jQuery i Spring MVC i kako da koristite Spring JDBC za obavljanje operacija sa bazom podataka, da pomenemo neke.

#4. Spring Framework 5

Kurs Spring Framework 5 je idealan ako želite da naučite Learn Spring Framework 5, Spring Data MongoDB, Spring Boot 2, Spring MVC, Spring Data JPA i Hibernate. Možete računati na 57 sati video zapisa na zahtev, 13 članaka i mnogo materijala za preuzimanje.

Napomena autora

Java ostaje jedan od najpopularnijih programskih jezika u savremenom svetu. Iako se uvode novi jezici, okviri kao što je Spring donose novi život Javi i proširuju njenu korisnost. Stoga ćemo verovatno nastaviti da imamo potražnju za Java inženjerima, jer su oni potrebni za održavanje zastarelog koda i kreiranje novih aplikacija.

Zaključak

Spring je visoko rangiran među Java EE okvirima i nadamo se da sada razumete šta je Spring Framework, njegove karakteristike, arhitekturu i radni proces. Kada se kombinuje sa drugim Spring projektima, Spring Framework nudi programerima različite razvojne alate koji se mogu koristiti u različitim razvojnim okruženjima.