Programiranje

Velocity ali FreeMarker?

Mehanizme predlog je mogoče uporabiti za najrazličnejše razvojne scenarije, kjer želite ustvariti besedilo na podlagi posebnih pravil obdelave in se pogosto uporabljajo kot komponenta pogleda v aplikacijah MVC. V tem članku Jeroen van Bergen razloži, kje se mehanizmi za predloge prilegajo vaši arhitekturi aplikacije, in vam pokaže nekatere operacije, ki so skupne vsem mehanizmom za predloge. Na koncu primerja dva vodilna mehanizma za predloge Java, Velocity in FreeMarker, glede na moč, enostavnost uporabe in zmogljivost.

Mehanizmi predlog se uporabljajo v razvojnih scenarijih Java, kjer je treba samodejno ustvariti besedilo in ga formatirati v skladu s posebnimi pravili obdelave. Trenutno sta najbolj priljubljena odprtokodna mehanizma za predloge Java Velocity in FreeMarker. Medtem ko je Velocity že dolgo vodilni mehanizem za predloge, ga je FreeMarker začel prehitevati in ponuja hitrost in prefinjenost, ki ju v Velocity ne boste vedno našli.

V tem članku vam na kratko predstavim mehanizme za predloge, razložim, kje se ujemajo z vašo arhitekturo aplikacije Java, in vam predstavim nekaj osnovnih operacij, ki so skupne vsem. Nato primerjam Velocity in FreeMarker glede na moč, enostavnost uporabe in zmogljivost.

Ta razprava je namenjena predvsem bralcem, ki so novi v mehanizmih za predloge in se želijo naučiti, čemu so namenjeni, ter dobiti pomoč pri izbiri med dvema vodilnima odprtokodnima možnostma.

Kaj je motor predloge?

A motor predloge je komponenta, ki za vnos vzame fiksno besedilo in podatke, jih integrira po določenih pravilih obdelave in izpiše besedilni dokument, ki vsebuje podatke. Mehanizmi predlog so zelo uporabni za naloge, kot so ustvarjanje dinamičnih spletnih strani, dokumentov in e-pošte, lahko pa jih uporabimo tudi za ustvarjanje izvorne kode.

Mehanizmi predlog se večinoma uporabljajo kot komponenta pogleda v arhitekturi MVC. Mehanizem predlog spodbuja dobro ločitev med dejansko logiko pogleda in upodobljenim pogledom, kar velja za dobro stvar. Uporaba mehanizma za predloge vključuje nekaj režijskih stroškov pri izdelavi aplikacije, vendar večina razvijalcev vidi hitro donosnost naložbe, ko je treba aplikacijo spremeniti. Ločitev pogleda od logike omogoča enostavno posodobitev videza in občutka aplikacije s prilagajanjem predlog, namesto da bi morali ponovno pisati izvorno kodo. Razmerje je podobno razmerju CSS in HTML, kjer sprememba sloga zahteva manjše urejanje datoteke CSS in ne veliko revizij HTML.

Pregled odprtokodnih mehanizmov za predloge Java

Kot je pogosto pri razvoju na platformi Java, lahko izbirate med številnimi mehanizmi za predloge na osnovi Jave. Poskušal sem sestaviti izčrpen seznam vseh mehanizmov za predloge Java, ki so trenutno na voljo. Nekateri od teh so resnično predloge v smislu, da niso bili razviti z določeno vrsto aplikacije. Nekateri so specializirani mehanizmi, ki si prizadevajo za določeno vrsto ustvarjanja dokumentov, na primer za okrasitev spletnih strani. Če mehanizem predlog ni namenjen za splošno uporabo, boste videli izrecni opis vrste aplikacije, za katero je namenjen.

Tabela 1. Mehanizmi predlog za platformo Java

ImeRazličicaNamenURLLicenca
Hitrost1.5Splošni mehanizem predlog//velocity.apache.org/Licenca za programsko opremo Apache
FreeMarker2.3.10Splošni mehanizem predlog//www.freemarker.org/index.htmlBSD licenca
SiteMesh2.3Postavitev in dekoracija spletne strani//www.opensymphony.com/sitemeshLicenca za OpenSymphony
TeaServlet2.3Spletne strani//teatrove.sourceforge.netDovoljenje za čaj
Jamon2.3.0Splošni mehanizem predlog//www.jamon.org/index.htmlMozilla Public License
WebMacro Splošni mehanizem predlog//www.webmacro.org/Splošna javna licenca GNU
$config[zx-auto] not found$config[zx-overlay] not found