0

我正在构建一个用于上传内容的 webapp。目前,我正在使用一个属性文件,我在其中定义了一些变量,其中包含一些我希望存储文件的文件夹的路径。这些路径指的是我的文件系统中的文件夹。

P1:由于我想让我的应用程序更便携,我决定将我上传的内容存储在项目类路径内的某个文件夹中,但我在占位符中使用的路径不起作用。

#path.images=C:/uploads/images    

#path.images=classpath:/webapp/uploads/images     (NOT working)

Q1:如果可能的话,我想知道我是否将内容存储在正确的位置(在webapp目录内)。

注意:我进行这些更改也是因为我试图FileInputStreamgetResourceAsStream().

任何帮助都感激不尽。

4

2 回答 2

3

不; 未随应用程序部署的资产应存储在其他地方。

通常,像这样的资产属于可配置的外部目录。配置机制包括 JNDI、上下文/初始化参数、环境变量或系统变量。

将资产保留在 Web 应用程序中是一个坏主意,原因有很多,其中最大的原因是:

  1. 如果应用程序部署为战争文件,则无论如何都无法写入战争文件,并且
  2. 您的资产受部署机制的支配,可能会被覆盖。

将它们保存在已知良好的位置,然后将它们流式传输回来,通过您的容器配置访问权限,或使用各种 CDN 机制中的任何一种来提供访问权限。

于 2013-01-29T14:30:10.673 回答
0

您不能将数据存储在类路径中 - 它是只读的。

为了获得最大的可移植性,您应该完全避免将数据存储在文件系统中(例如,在集群场景中,您需要确保您的文件系统在所有节点上都是相同的)。

于 2013-01-29T14:32:47.197 回答