SpringBoot映射虚拟图片路径

各位看官可以关注博主个人博客,了解更多信息。
作者:Surpasser
链接地址:https://surpass.org.cn

前言

​ 我的毕设项目中涉及到了多媒体表单提交,以我本来的想法是希望把上传的图片文件存在我的项目中,数据库中只需要存在一个独一无二的图片名字,这样就不会因为项目的移动而需要修改图片的实际路径。

​ 当我完成信息修改的方法是发现我所上传的图片并没有显示出来。

SpringBoot映射虚拟图片路径

​ 这个问题想了很久,我的图片路径是对的,图片名字也是对的,查看源代码也是404,但是当我去复制已经在项目中存在图片到数据库确是可以在页面出来,百思不得其解。偶然间得到了灵感,突然看到我项目中的图片数量和本地磁盘中的图片数量不一致,恍然大悟,原本项目中有自己复制的图片,经过编译后是存在与class中的,后期项目启动时上传的图片上传到项目的源代码项目中,很明显时无法拿到的。

SpringBoot映射虚拟图片路径
SpringBoot映射虚拟图片路径

解决办法

​ 1.我在项目中properties配置文件中指定了本地磁盘的项目图片路径,通过配置映射项目中图片路径。

SpringBoot映射虚拟图片路径

​ 2.通过配置类指定映射图片路径。

package com.zhouli.gd.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {

    @Value("${spring.servlet.multipart.location}")
    private String storageRootFolder;

    @Value("${spring.servlet.asset.virtual.path}")
    String virtualPath;

    /***
     * 配置图片等资源虚拟路径
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(virtualPath).addResourceLocations("file:" + storageRootFolder);
        super.addResourceHandlers(registry);
    }

}

​ 3.按照原来的想法数据库中只存放图片名,通过访问修改页面。。。

SpringBoot映射虚拟图片路径
尾言:这是第一次以Springboot+Mybatis架构做一个毕业设计,原先一直时SSM+eclipse做的项目练手,此前配置图片的映射路径只需要在tomcat中配置。

方法一:


方法二:

SpringBoot映射虚拟图片路径

Original: https://www.cnblogs.com/dearsusu/p/14768255.html
Author: 青衫染红尘
Title: SpringBoot映射虚拟图片路径

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/580359/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 基于Gradle的Spring源码下载及构建技巧

    1 Spring 5源码下载 首先你的JDK需要升级到1.8以上版本。从Spring 3.0开始,Spring源码采用GitHub托管,不再提供官网下载链接。这里不做过多赘述,大家…

    Java 2023年6月7日
    0119
  • List转Map处理

    List对象装一个Map 在Java8中新增了stream流的操作,对于代码书写更为简便,而且更容易看的懂 List unitList = UnitMapper.selectLis…

    Java 2023年6月15日
    080
  • spring boot集成mybatis 出现 nvalid bound statement (not found)

    公司新搭建的项目 再idea中进行springboot集成mybatis时项目能正常启动,但在链接数据库时提示nvalid bound statement (not found) …

    Java 2023年5月30日
    083
  • Vue 多环境配置

    settings.js config/index.js vue main.js Original: https://www.cnblogs.com/vipsoft/p/166966…

    Java 2023年6月14日
    077
  • springboot 模拟上次文件: MultipartFile + json餐食

    首先来看,接口及参数 postman模拟上传 需求:将生成好的,远程excel附件,以及一些常规数据通过接口,传递过去。 代码部分: 1.将远程excel附件,转化为Multipa…

    Java 2023年5月30日
    085
  • 20220808-单例设计模式

    1. 设计模式 2 单例设计模式 2.1 懒汉式 2.2 饿汉式 2.3 区别 1. 设计模式 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。 使用…

    Java 2023年6月15日
    084
  • 我使用Spring AOP实现了用户操作日志功能

    我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 …

    Java 2023年6月9日
    082
  • Spring中基于注解的AOC

    AOP注意事项 切面类和目标类都需要交给IOC容器管理切面类必须通过@Aspect注解标识为一个切面在spring的配置文件中设置 * 1.在切面中,需要通过指定的注解将方法标识为…

    Java 2023年6月16日
    057
  • 基于Redis&MySQL接口幂等性设计

    基于Redis&MySQL接口幂等性设计 欲把相思说似谁,浅情人不知。 幂等性即多次调用接口或方法不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。 前端重复提…

    Java 2023年6月5日
    069
  • RabbitMQ 发布订阅-实现延时重试队列

    RabbitMQ消息处理失败,我们会让失败消息进入重试队列等待执行,因为在重试队列距离真正执行还需要定义的时间间隔,因此,我们可以将重试队列设置成延时处理。今天参考网上其他人的实现…

    Java 2023年5月30日
    0103
  • Java高并发27-ThreadPoolExecutor原理剖析(1)

    类图 线程池的好处: (1)性能好;(2)工厂方法便捷创建线程,个数自定义指定 类图描述 Excutors其实是一个工具类,ThreadPoolExecutor继承了Abstrac…

    Java 2023年6月13日
    087
  • 一文读懂Docker相关命令

    以下命令以centos为例 进程相关命令 启动docker服务 systemctl start docker 停止docker服务 systemctl start docker 重…

    Java 2023年6月7日
    097
  • UML的四种关系

    (1)泛化关系 (2)实现关系 (3)依赖关系 (4)关联关系 (5)聚合关系 (6)组合关系 (1)泛化关系 泛化(generalization)关系是一个类(称为子类、子接口)…

    Java 2023年6月5日
    099
  • Mybatis 中$与#的区别

    1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当…

    Java 2023年5月30日
    069
  • Idea配置Serializable class without ‘serialVersionUID’ 找不到

    在使用Java原生序列化的时候,serialVersionUID起到了一个类似版本号的作用,在反序列化的时候判断serialVersionUID如果不相同,会抛出InvalidCl…

    Java 2023年6月9日
    055
  • druid数据源手动创建

    手动创建druid数据源,可以使用jdbc或者通过aspect进行多数据源的动态切换 通过md5加密创建唯一key,在key重复时不进行创建, 创建的数据源可以通过dataSour…

    Java 2023年6月16日
    059
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球