Programmering

Velocity eller FreeMarker?

Malmotorer kan brukes på et bredt utvalg av utviklingsscenarier der du vil generere tekst basert på spesifikke behandlingsregler, og brukes ofte som visningskomponent i MVC-applikasjoner. I denne artikkelen forklarer Jeroen van Bergen hvor malmotorer passer inn i applikasjonsarkitekturen din og viser deg noen av operasjonene som er felles for alle malmotorer. Til slutt sammenligner han de to ledende Java-malmotorene, Velocity og FreeMarker, når det gjelder kraft, brukervennlighet og ytelse.

Malmotorer brukes i Java-utviklingsscenarier der det er nødvendig å automatisk generere tekst og formatere den i henhold til spesifikke behandlingsregler. De to mest populære open source Java-malmotorene er for øyeblikket Velocity og FreeMarker. Mens Velocity har vært den ledende malmotoren i lang tid, har FreeMarker begynt å overhale den, og tilbyr en hastighet og raffinement du ikke alltid finner i Velocity.

I denne artikkelen introduserer jeg deg kort for malmotorer, forklarer hvor de passer inn i Java-applikasjonsarkitekturen din og viser deg noen grunnleggende operasjoner som er felles for dem alle. Jeg sammenligner deretter Velocity og FreeMarker basert på kraft, brukervennlighet og ytelse.

Denne diskusjonen er først og fremst ment for lesere som er nye for malmotorer som vil lære hva de brukes til og få litt hjelp til å velge mellom de to ledende alternativene for åpen kildekode.

Hva er en malmotor?

EN malmotor er en komponent som tar fast tekst og data som inndata, integrerer disse etter visse behandlingsregler og sender ut et tekstdokument som inneholder dataene. Malmotorer er veldig nyttige for oppgaver som å lage dynamiske websider, dokumenter og e-poster, og kan også brukes til å generere kildekode.

Malmotorer brukes hovedsakelig som visningskomponent i en MVC-arkitektur. Malmotoren oppmuntrer til et godt skille mellom den faktiske visningslogikken og den gjengitte visningen, som regnes som en god ting. Å bruke en malmotor innebærer noe overhead i å bygge applikasjonen, men de fleste utviklere ser en rask avkastning på investeringen når applikasjonen må endres. Separasjonen av visningen fra logikken gjør det enkelt å oppdatere utseendet og følelsen av applikasjonen ved å justere malene, i stedet for å måtte skrive kildekoden på nytt. Forholdet ligner på CSS og HTML, hvor en endring i stil krever en liten redigering av CSS-filen, i stedet for mange revisjoner av HTML.

Oversikt over open source Java malmotorer

Som ofte er tilfelle når du utvikler på Java-plattformen, har du mange Java-baserte malmotorer å velge mellom. Jeg har prøvd å lage en omfattende liste over alle Java malmotorer som er tilgjengelige for øyeblikket. Noen av disse er det ekte malmotorer i den forstand at de ikke er utviklet med tanke på en bestemt type applikasjon. Noen er spesialiserte motorer som tar sikte på å gjøre en bestemt type dokumentoppretting, for eksempel dekorere websider. Hvis en malmotor ikke er ment for allmenn bruk, vil du se en eksplisitt beskrivelse av applikasjonstypen den er ment for.

Tabell 1. Malmotorer for Java-plattformen

NavnVersjonHensiktURLTillatelse
Hastighet1.5Malmotor for generell bruk//velocity.apache.org/Apache programvarelisens
FreeMarker2.3.10Malmotor for generell bruk//www.freemarker.org/index.htmlBSD-lisens
SiteMesh2.3Nettsideoppsett og dekorasjon//www.opensymphony.com/sitemeshOpenSymphony License
TeaServlet2.3nettsider//teatrove.sourceforge.netTe-lisens
Jamon2.3.0Malmotor for generell bruk//www.jamon.org/index.htmlMozilla Public License
WebMacro Malmotor for generell bruk//www.webmacro.org/GNU General Public License
$config[zx-auto] not found$config[zx-overlay] not found