2013-07-31 11 views
8

Sto sviluppando un'applicazione web Java/spring-mvc che utilizza un sistema di pianificazione per generare file csv da inviare via e-mail.Dove memorizzare i file temporanei in un'applicazione Web Java?

La mia prima idea era quella di generare questi file localmente nel server e quindi inviarli ai destinatari, ma ora ho un dubbio. Dove conservare i file temporanei?

Distribuirò la mia domanda come una guerra, quindi so che potrebbero esserci problemi.

È una cattiva idea creare una directory temporanea nella mia directory WEB-INF? Un'alternativa potrebbe essere serializzare questi file e memorizzarli in una tabella di database.

Qual è il tuo suggerimento? qualche buona pratica?

risposta

7

L'avrei lasciato su jvm, cioè utilizzare la proprietà di sistema java.io.tmpdir. Creare una directory in tmp dir (new File(system.getProperty("java.io.tmpdir")).mkdir()) o solo un file nella directory tmp (File.createTempFile("name", ".csv")).
Per l'applicazione in esecuzione su Tomcat, la directory tmp è <catalina_home_directory>/temp.

+0

http://stackoverflow.com/questions/617414/create-a-temporary-directory-in-java – qkrijger

1

How to create a temporary directory/folder in Java? - anche su come fare questo il modo migliore in Java 7.

suona davvero come semplici file temporanei sono esattamente ciò che serve - e non si ha realmente bisogno di preoccuparsi di dove archiviarli , Java lo fa per te. Perché dovresti archiviarli in un DB se ti servissero solo temporaneamente? I database sono per l'archiviazione persistente che ti interessa. E il problema della serializzazione, neh ...