我正在开发一个java / spring-mvc网络应用程序,它使用调度系统生成csv文件以通过电子邮件发送。
我的第一个想法是在服务器本地生成这些文件,然后将它们发送给收件人,但现在我有一个疑问。存储临时文件的位置?
我将我的应用程序部署为战争,所以我知道可能存在问题。
在WEB-INF目录中创建临时目录是个坏主意吗?另一种方法是序列化这些文件并将它们存储在数据库表中。
你的建议是什么?任何最佳做法?
答案 0 :(得分:8)
我会把它留在jvm上,即使用java.io.tmpdir
系统属性。在tmp目录(new File(system.getProperty("java.io.tmpdir")).mkdir()
)中创建一个目录,或者只在tmp目录(File.createTempFile("name", ".csv")
)中创建一个目录。
对于在Tomcat上运行的应用程序,tmp目录为<catalina_home_directory>/temp
。
答案 1 :(得分:1)
How to create a temporary directory/folder in Java? - 关于如何在Java 7中以最佳方式执行此操作。
听起来真正的简单临时文件正是您所需要的 - 而且您并不需要担心存储它们的位置,Java会为您做到这一点。如果您只是暂时需要它们,为什么要将它们存储在数据库中?数据库用于您关心的持久存储。序列化的麻烦,呃...