spring boot图片上传之后获取不到需要重启项目,以及其他问题

spring boot图片上传之后,需要刷新或者重启项目

在这里插入图片描述
这里我将前端上传的图片用绝对路径(

D:/LBB2.0/src/main/WebApp/static/images/userimg/

)直接存储在项目的静态文件夹中,然后前端我用的 < img th:src="@{${img}}" width=“60px” height=“40px”> 请求这个静态资源却报404,原因应该是这个项目没刷新,不知道有这张图片,我重新启动项目后这张图片就能请求成功了,我上传新图片又404了,这个问题我引用了Java SpringBoot 图片上传无法马上显示,只能重启IDE后才生效解决方案
这位大佬的解答,之后在WebMvcConfigurer中重写
addResourceHandlers这个方法设置资源映射后解决,

 @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/userimg/**").addResourceLocations("file:D:/LBB2.0/Data/img/userimg/");
    }

项目结构问题

在求解上面的问题中,一位大佬提醒我的项目结构有问题
以下是大佬的提醒:

如果是这种动态的不能放到 src 下哟,因为 src 在编译打包以后,都是放到 classpath 下的,其实就是固定的了。一般来说是可以创建一个 data 的文件,下面放图片
在这里插入图片描述
但是这样的话,前端就不能通过路径直接访问到了,而是需要后端提供相应的接口请求,后端再将图片的 base64 编码返回给前端。
实际中,如果是小的项目可以按照我说的来,但是如果是大的项目,就需要需要单独的文件服务器(但是也是请求后端接口,前端对于数据存在哪里是无感的),或者阿里或其他厂商提供的 oss 服务。不会和项目放到一起的。

之后我将我的项目结构改成这样
在这里插入图片描述

日志显示bean注入失败

在这里插入图片描述

报错之后,我以为这个不需要注入,于是把@Autowired这个注解删除了,于是报空指针错误
,之后我去找我的impl看看里面有没有@Service注解
结果发现我的impl被我删除了,解决方法,恢复这个业务类

恢复删除的文件(IDEA)

在这里插入图片描述

右键被删除的文件的父文件夹,找到 Local History ->show History 然后到这个页面
在这里插入图片描述

然后点击这个Reveit Selection 就可以恢复了

2021.4.3号错误

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷可是个天才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值