Velocity atau FreeMarker?

Mesin template dapat diterapkan ke berbagai macam skenario pengembangan di mana Anda ingin menghasilkan teks berdasarkan aturan pemrosesan tertentu, dan sering digunakan sebagai komponen tampilan dalam aplikasi MVC. Pada artikel ini, Jeroen van Bergen menjelaskan di mana mesin templat sesuai dengan arsitektur aplikasi Anda dan menunjukkan beberapa operasi yang umum untuk semua mesin templat. Terakhir, ia membandingkan dua mesin template Java terkemuka, Velocity dan FreeMarker, dalam hal daya, kemudahan penggunaan, dan performa.

Mesin template digunakan dalam skenario pengembangan Java di mana diperlukan untuk menghasilkan teks secara otomatis dan memformatnya sesuai dengan aturan pemrosesan tertentu. Dua mesin template Java open source paling populer saat ini adalah Velocity dan FreeMarker. Meskipun Velocity telah menjadi mesin templat terkemuka sejak lama, FreeMarker telah mulai menyusulnya, menawarkan kecepatan dan kecanggihan yang tidak akan selalu Anda temukan di Velocity.

Pada artikel ini saya secara singkat memperkenalkan Anda ke mesin templat, menjelaskan di mana mereka cocok dengan arsitektur aplikasi Java Anda dan menunjukkan kepada Anda beberapa operasi dasar yang umum untuk semuanya. Saya kemudian membandingkan Velocity dan FreeMarker berdasarkan daya, kemudahan penggunaan, dan performa.

Diskusi ini terutama ditujukan bagi pembaca yang baru mengenal mesin template yang ingin mempelajari kegunaannya dan mendapatkan bantuan untuk memilih di antara dua opsi open source terkemuka.

Apa itu mesin template?

Sebuah template engine adalah komponen yang mengambil teks tetap dan data sebagai masukan, mengintegrasikan mengikuti aturan-aturan pengolahan tertentu, dan output dokumen teks yang berisi data. Mesin template sangat berguna untuk tugas-tugas seperti membuat halaman web dinamis, dokumen, dan email, dan juga dapat digunakan untuk menghasilkan kode sumber.

Mesin template kebanyakan digunakan sebagai komponen tampilan dalam arsitektur MVC. Mesin templat mendorong pemisahan yang baik antara logika tampilan aktual dan tampilan yang diberikan, yang dianggap sebagai Hal yang Baik. Menggunakan mesin templat melibatkan beberapa biaya tambahan dalam membangun aplikasi, tetapi sebagian besar pengembang melihat pengembalian investasi yang cepat ketika aplikasi harus diubah. Pemisahan tampilan dari logika membuatnya mudah untuk memperbarui tampilan dan nuansa aplikasi dengan menyesuaikan template, daripada harus menulis ulang kode sumber. Hubungannya mirip dengan CSS dan HTML, di mana perubahan gaya memerlukan sedikit pengeditan pada file CSS, daripada banyak revisi pada HTML.

Gambaran umum mesin template Java open source

Seperti yang sering terjadi saat mengembangkan di platform Java, Anda memiliki banyak mesin template berbasis Java untuk dipilih. Saya telah mencoba menyusun daftar lengkap semua mesin template Java yang saat ini tersedia. Beberapa di antaranya adalah mesin templat nyata dalam arti bahwa mereka belum dikembangkan dengan mempertimbangkan jenis aplikasi tertentu. Beberapa adalah mesin khusus yang bertujuan untuk melakukan jenis pembuatan dokumen tertentu, seperti mendekorasi halaman Web. Jika mesin templat tidak dimaksudkan untuk penggunaan tujuan umum, Anda akan melihat deskripsi eksplisit tentang jenis aplikasi yang dimaksudkan untuk itu.

Tabel 1. Mesin template untuk platform Java

Nama Versi: kapan Tujuan URL Lisensi
Kecepatan 1.5 Mesin template tujuan umum //velocity.apache.org/ Lisensi Perangkat Lunak Apache
FreeMarker 2.3.10 Mesin template tujuan umum //www.freemarker.org/index.html Lisensi BSD
SiteMesh 2.3 Tata letak dan dekorasi halaman web //www.opensymphony.com/sitemesh Lisensi OpenSymphony
TeaServlet 2.3 Halaman web //teatrove.sourceforge.net Lisensi Teh
Jamon 2.3.0 Mesin template tujuan umum //www.jamon.org/index.html Lisensi Publik Mozilla
WebMacro   Mesin template tujuan umum //www.webmacro.org/ Lisensi Publik Umum GNU