Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring MVC Hibernate应用程序中,我应该在哪里保存用户映像?_Java_Hibernate_Spring Mvc - Fatal编程技术网

Java 在Spring MVC Hibernate应用程序中,我应该在哪里保存用户映像?

Java 在Spring MVC Hibernate应用程序中,我应该在哪里保存用户映像?,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我正在使用MySQL创建一个Spring MVC Hibernate应用程序。我应该将用户图像保存在哪里:在数据库中或某个文件夹中,如WEB-INF/下 这取决于你想要完成什么 如果这些是静态图像,并且您有固定数量的用户,则可以考虑在Web-INF/.2下保存它们。BR> 但是,很可能情况并非如此,用户数量不一,必须为每个用户存储一个用户 可能的解决方案: A.对于用户,请存储图像名称,并具有从文件系统中的已知目录存储/加载的约定 B.将图像作为blob存储在数据库中。考虑一下 < P>这取决于

我正在使用MySQL创建一个Spring MVC Hibernate应用程序。我应该将用户图像保存在哪里:在数据库中或某个文件夹中,如
WEB-INF/

这取决于你想要完成什么
如果这些是静态图像,并且您有固定数量的用户,则可以考虑在Web-INF/.2下保存它们。BR> 但是,很可能情况并非如此,用户数量不一,必须为每个用户存储一个用户

可能的解决方案:
A.对于用户,请存储图像名称,并具有从文件系统中的已知目录存储/加载的约定

B.将图像作为blob存储在数据库中。考虑一下

< P>这取决于你想要完成什么。BR> 如果这些是静态图像,并且您有固定数量的用户,则可以考虑在Web-INF/.2下保存它们。BR> 但是,很可能情况并非如此,用户数量不一,必须为每个用户存储一个用户

可能的解决方案:
A.对于用户,请存储图像名称,并具有从文件系统中的已知目录存储/加载的约定

B.将图像作为blob存储在数据库中。考虑检查

当然不在Web-Fin中。您可能想将它们保存在文件系统中,但不在WebApp的目录中保存。首先,如果应用程序被打包成一场战争,那么它很可能不存在。其次,一旦你重新部署应用程序,你就会失去所有东西。桌面应用程序不会将其用户数据存储在安装目录中,是吗?webapps也应该如此


现在,由于图像通常很大,并且不可搜索,您可能希望将它们存储在文件系统中,并且只将它们的名称、路径、哈希和/或mime类型存储到数据库中。但这取决于您的应用程序,如果它们需要由其他应用程序提供/使用,这些应用程序是否可以访问数据库和/或文件系统等。您可以决定。

当然不在WEB-INF中。您可能希望将它们保存在文件系统中,但不保存在webapp的目录中。首先,如果应用程序被打包成一场战争,那么它很可能不存在。其次,一旦你重新部署应用程序,你就会失去所有东西。桌面应用程序不会将其用户数据存储在安装目录中,是吗?webapps也应该如此

现在,由于图像通常很大,并且不可搜索,您可能希望将它们存储在文件系统中,并且只将它们的名称、路径、哈希和/或mime类型存储到数据库中。但这取决于您的应用程序,是否需要由其他应用程序提供服务/使用,这些应用程序是否可以访问数据库和/或文件系统等。您可以选择:

  • 数据库-您有一个积极的观点,即它可以与记录关联,并且永远不会是孤立的(取决于您的模型)。对于备份,在数据库增加的情况下,这有点痛苦

  • 文件系统备份功能,因为这些是物理文件,一个rsynch进程就足够了。另一个积极的方面是减少了DB的IO。尽管很难在文件和数据库中存储的记录之间附加逻辑(您已经分发了内容),因此您无法确定文件是否已被删除,并且数据库中仍有一些引用它的记录

  • 如果选择了文件系统选项,则将其置于应用程序目录结构之外(为文件准备一个专用位置)。不应修改应用程序目录,这会在重新部署时造成一些麻烦。不过,您可以使用符号链接

    对于图像,您可能希望执行一些缩略图等等,使用文件系统选项会更便宜。

    您可以选择:

  • 数据库-您有一个积极的观点,即它可以与记录关联,并且永远不会是孤立的(取决于您的模型)。对于备份,在数据库增加的情况下,这有点痛苦

  • 文件系统备份功能,因为这些是物理文件,一个rsynch进程就足够了。另一个积极的方面是减少了DB的IO。尽管很难在文件和数据库中存储的记录之间附加逻辑(您已经分发了内容),因此您无法确定文件是否已被删除,并且数据库中仍有一些引用它的记录

  • 如果选择了文件系统选项,则将其置于应用程序目录结构之外(为文件准备一个专用位置)。不应修改应用程序目录,这会在重新部署时造成一些麻烦。不过,您可以使用符号链接


    对于图像,您可能希望执行一些缩略图等等,使用文件系统选项会更便宜。

    如果您将它们保存在文件系统上,我如何在前端访问它们?与您将它们保存在数据库中的方式相同:使用指向从文件加载图像字节的控制器方法的URL,并将它们发送到响应输出流。但它不是太大吗?如果我在前端有120篇文章,每篇文章有5张图片?你到底在问什么?无论图像存储在何处,在一个页面中加载600个图像的成本确实很高。但这主要取决于图像的大小、浏览器和服务器之间的带宽等。现在取决于图像存储在服务器上的位置。如果将它们保存在文件系统中,如何在前端访问它们?与将它们保存在数据库中的方式相同:使用指向控制器方法的URL,该方法将从文件加载图像字节,并将它们发送到响应输出流。但它不是太大吗?如果我在前端有120篇文章,每篇文章有5张图片?你到底在问什么?Whe