springboot_项目重启问题

问题描述

  • 在做一个文件上传功能的时候,我获取到类路径:
    String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
  • 此方法获取到的路径是:/target/classes
  • 我将文件存储到/target/classes/template/

此时发现只要一上传文件,项目就进行自动重启,问了一些大佬,还以为是框架中有什么安全检查呢

后来我发现是热部署的问题

代码如下:

    @PostMapping("/uploadFile")
    @ApiOperation("上传")
    public ResultBody uploadFile(@RequestParam("file") MultipartFile file,
                                 @RequestParam String id) throws IOException {
        String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
        //ApplicationHome h = new ApplicationHome(getClass());
        //String classPath = h.getSource().getParentFile().getAbsolutePath();
        String filePath = classPath + "/template/" + file.getOriginalFilename();
        File dest = new File(filePath);
        if (!dest.getParentFile().exists())
            dest.getParentFile().mkdirs();
        MonthlyImportDemand demand = monthlyImportDemandService.getById(id);
        demand.setFilePath(dest.getAbsolutePath());
        monthlyImportDemandService.updateById(demand);
        FileUtil.writeBytes(file.getBytes(), dest);
        return ResultBody.success();
    }

获取绝对路径可以使用两种方法:

  • String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
  • ApplicationHome h = new ApplicationHome(getClass());
    File file = h.getSource()

我将上传的文件保存至target/template中,问题解决

你可能感兴趣的:(spring,boot,java,spring)