Domanda

So che c'è una libreria chiamata FreeMarker per creare modelli di e-mail per Java. Pensi che questa libreria è adatto da utilizzare in progetti di impresa? C'è qualche altre librerie per creare modello e-mail per Java?

È stato utile?

Soluzione

Freemarker funziona bene, ed è molto potente. Velocity ha una sintassi più semplice, è un po 'meno potente, ed è molto più indulgente WRT. null (variabili non essendo popolata).

Ho usato entrambi, e la velocità è molto facile da ottenere cominciato con. Freemarker (nonostante la sua più rigorosa implementazione) offre molto di più in termini di 'correttezza' e strutture.

Altri suggerimenti

Sì, lo è. Per ragioni di completezza ci sono altre librerie interessanti come:

  • velocità apache
  • stringa templace

Un certo numero di anni fa, ho scritto un programma per l'invio di notifiche di fatturazione. Ho usato Velocity per creare il contenuto effettivo delle e-mail. Il trasporto è stato fornito da James, il server di posta elettronica da Apache. Questa applicazione invia 10s di migliaia di e-mail personalizzati ogni giorno.

Velocity non mi ha dato alcun problema, ma avendo avuto qualche esperienza con FreeMarker, probabilmente scegliere FreeMarker ora.

Per la cronaca, ci sono molti altri che si può usare, e non solo per la posta elettronica. Nella maggior parte dei progetti che ho lavorato, Velocity è stato utilizzato e quando non era Velocity, era Freemarker.

Sono l'autore di Pebble motore di template che credo sia esattamente quello che stai cercando.

Un'altra opzione si potrebbe voler guardare in (anche se probabilmente non) è quello di utilizzare JSP, se ci si trova in un ambiente Servlet. Per la maggior parte, io non consiglio questo dal momento che è davvero un sacco di lavoro davanti fino a ottenere questa messa a punto.

Tuttavia, questa era una soluzione utile nel nostro ambiente, dove abbiamo un gruppo di sviluppatori web che hanno già familiarità con la sintassi JSP e tag personalizzati. E 'stato bello essere in grado di farli lavorare sui contenuti di posta elettronica direttamente senza dover imparare un'altra lingua di template (anche se sono sicuro FreeMarker probabilmente non è così difficile da imparare). Questo approccio ci permette inoltre di riutilizzare alcuni dei nostri tag personalizzati di contenuti e-mail.

Prima ho iniziato a fare la mia e-mail di template, ho pensato io pregherò il mio gFriend, e mi sono imbattuto l'idea di utilizzare il motore di JSP per template (se siete in un ambiente servlet). Ho trovato l'originale idea e perfetto per le mie esigenze dato che sono sotto GAE e l'aggiunta di vaso per GAE è una decisione molto costosa (impatto sulle prestazioni)

E come sono arrivato a quel link (l'idea originale) https://stackoverflow.com/a/458088/2033675

Così ho messo un link a come farlo per Java e-mail di template ?

naturalmente nel caso in cui qualcuno avrà le stesse vincoli come faccio io.

Best

Nel settore delle imprese molte persone haveuse strumenti come sonar o PMD di avere uno sguardo sulla complessità del codice. Non so se uno di questi supporti qualsiasi libreria di template. Tuttavia, il livello di complessità di modelli ho rivisto in natura era su un alto niveau, mi piacerebbe davvero per evitare che nel mio codice. Ho cercato di refactoring alcuni di loro, e anche se ho fatto un certo successo i risultati non sono mai stati soddisfacenti. Alcuni giorni fa ho refactoring un modello 2kLoC a 150 righe di codice template e circa la logica 1.5kLoC di una nuova classe Java utilizzando Snippetory . Naturalmente questo ha lasciato ancora del lavoro da abbinare le metriche, ma ora è possibile ottenere il codice mantenibile. Modelli Snippetory forniscono una grande separazione degli interessi spostando i dati logica legame fuori del modello. Come bonus il modello diventa più riutilizzabile. D'altra parte il legame tra logica e codice richiede un codice, anche. Alla fine te quantità di codice non cambia molto, ma la leggibilità è aumentato drammaticamente.

Per il business aziendale che avevo recomment Snippetory.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top