Kapitola 1. Aplikační rámec Spring - teorie

Obsah

Účel
Podpora aplikační vrstvy
Návrhové vzory Obrácení řízení a Injektáž závislostí
Typická architektura Spring aplikací

Hitem v oblasti vývoje pokročilých JEE aplikací se v průběhu posledních tří let stal rámec pro jejich správu s názvem Spring framework. V základech tohoto open-source projektu se nachází kód, který byl publikován v roce 2003 Rodem Johnsonem v [1] a který odráží Johnsonovu několikaletou analytickou, konzultantskou, ale i programátorskou zkušenost s tvorbou rozsáhlých JEE aplikací. Tento kód byl autorem navržen pro zefektivnění řešení některých běžných problémů, se kterými se každý vývojář pokročilých Java aplikací setkává téměř denně, a celkově pro zjednodušení a snížení ceny návrhu a vývoje těchto programů. Jeho intenzivním rozšiřováním vznikl aplikační rámec, jehož celkový počet stažení se k dnešnímu dni rychle blíží k půl miliónu.

Účel

Rámec Spring™ je modulární Java/JEE aplikační rámec, jenž také bývá někdy označován jako odlehčený (lightweight) kontejner. Využíván je stejně jako Enterprise JavaBeans™ zejména pro tvorbu webových aplikací, ale lze jej použít v podstatě pro jakýkoliv typ aplikace, včetně klasických (desktop GUI) aplikací.

Cílem tohoto projektu je samozřejmě zejména usnadnění vývoje Java (a zejména JEE) aplikací. Prostředků k dosažení tohoto primárního cíle poskytuje Spring™ několik.

Prvním z nich je podpora pro aplikační vrstvu programů, což je vlastnost, která je na trhu unikátní a která představuje hlavní lákadlo pro vývojáře JEE aplikací.

Dalším důležitým cílem použití rámce Spring™ je snadná testovatelnost výsledné aplikace. Spring™, jak později uvidíme, umožňuje čistým a pohodlným způsobem vzájemně oddělit (z hlediska vzájemné závislosti) nejen jednotlivé vrstvy, ale dokonce i jednotlivé objekty, což je klíčovou podmínkou pro možnost využití klasického jednotkového testování. Vzhledem k tomu, že agilní metodiky vývoje software, které jsou na testování ve většině případů postaveny, jsou stále populárnější a rozšířenější, je rovněž tato vlastnost rámce považována za klíčovou.

Drtivá většina existujících aplikačních rámců se soustřeďuje na podporu jen určité architekturální vrstvy aplikace. Příkladem budiž oblíbený MVC rámec Struts™, který usnadňuje vývoj webové prezentační vrstvy aplikací, nebo neméně populární objektově-relačně mapovací nástroj Hibernate, orientující se na perzistenční vrstvu. Rámec Spring naproti tomu konzistentním způsobem podporuje všechny vrstvy aplikací, prezentační vrstvou počínaje, přes již zmíněnou aplikační vrstvu až k datové a perzistenční vrstvě. Výjimkou ovšem není ani například vrstva webových služeb.

Dalším a rozhodně nikoliv posledním cílem aplikačního rámce Spring je nevynalézat kolo. Integrace velkého množství rozšířených softwarových nástrojů poskytuje uživateli možnost využít specializovaných a časem prověřených řešení na danou problémovou oblast, a to konzistentním způsobem. K těmto podporovaným nástrojům patří samozřejmě již zmíněné Struts a Hibernate, jejich celkové množství však jde řádově do desítek.

Komentáře

Téma neobsahuje žádné komentáře.

Vložit komentář

Můžete používat značkovací jazyk Texy!


Jméno:
E-mail:
Url:
Komentář:
1 + 2 =
 
MoroSystems, s.r.o.