Java 在Tomcat中指定存储图像的外部目录的最佳实践?

Java 在Tomcat中指定存储图像的外部目录的最佳实践?,java,tomcat,jakarta-ee,Java,Tomcat,Jakarta Ee,指定用于在Tomcat中存储图像的外部目录的最佳实践?与容器无关的最佳答案是将位置放在JNDI中 对于Tomcat,您可以将包含特定信息的类放在Tomcat类路径中。这对web应用程序是可见的。我假设您的图像文件不需要位于类路径上。这样做的一个好方法是在web应用程序根目录之外指定一个目录。然后,应用程序应允许使用绝对路径值配置此baseUrl属性(由文件类指定,例如“C:/Dev/mypicsdir”) 将此目录保留在根目录和项目之外可以让您重新部署并更新到应用程序的新版本,而无需对存储的文件

指定用于在Tomcat中存储图像的外部目录的最佳实践?

与容器无关的最佳答案是将位置放在JNDI中


对于Tomcat,您可以将包含特定信息的类放在Tomcat类路径中。这对web应用程序是可见的。

我假设您的图像文件不需要位于类路径上。这样做的一个好方法是在web应用程序根目录之外指定一个目录。然后,应用程序应允许使用绝对路径值配置此
baseUrl
属性(由文件类指定,例如
“C:/Dev/mypicsdir”

将此目录保留在根目录和项目之外可以让您重新部署并更新到应用程序的新版本,而无需对存储的文件执行任何操作。如果这些图像应该可以从浏览器访问,请在Tomcat中创建单独的web应用程序


如果可能,将此限制为单个目录,但您需要确定保存的文件是唯一的。一种方法是自己控制文件名,或者让用户控制文件名。在最后一种情况下,您还必须检查是否已存在具有所选名称的文件。

如果是linux,您可以轻松地将符号链接映射为/imageset目录。

我们使用的方法

使用 (-D IMAGES\u BASE\u DIR=“您的BASE\u Image\u DIR”)


接下来,我们可以根据需要追加/嵌套更多目录

,下次重新部署应用程序时,符号链接将被删除