文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java教程:SpringBoot在线代码修改器

2023-06-02 10:08

关注

项目上线之后,如果是后端报错,只能重新编译打包部署然后重启;如果仅仅是前端页面、样式、脚本修改,只需要替换到就可以了。

小公司的话可能比较自由,可以随意替换,但是有些公司权限设置的比较严格,需要提交申请交给运维去处理。

如果仅仅是一个前端问题,又很紧急,这时候提申请走流程势必会影响到用户的正常使用。

今天,给大家推荐一款前端代码文件编辑器来解决以上问题。

案例

定义实体,用于前端文件树展示:

@Data
public class SysFile {
   private Integer fileId;
   private String name;
   private Integer parentId;
   private String parentPath;
}

由于项目采用的是SpringBoot框架,打成了war包部署,后端采用以下方式获取文件列表:


@RequestMapping(value = "list", method = RequestMethod.POST)
public Result list() throws FileNotFoundException {
   String filePath = ResourceUtils.getURL("classpath:").getPath();
   List<SysFile> fileList = new ArrayList<>();
   getAllFilePaths(filePath,fileList,0,"");
   return Result.ok(fileList);
}

递归获取某目录下的所有子目录以及子文件:


private static List<SysFile> getAllFilePaths(String filePath, List<SysFile> filePathList,
                                            Integer level,String parentPath) {
   File[] files = new File(filePath).listFiles();
   if (files == null) {
       return filePathList;
   }
   for (File file : files) {
       int num = filePathList.size()+1;
       SysFile sysFile = new SysFile();
       sysFile.setName(file.getName());
       sysFile.setFileId(num);
       sysFile.setParentId(level);
       if (file.isDirectory()) {
           if(level==0){
               if(file.getName().equals("templates")||
                       file.getName().equals("static")){
                   filePathList.add(sysFile);
                   parentPath = SystemConstant.SF_FILE_SEPARATOR+file.getName();
                   getAllFilePaths(file.getAbsolutePath(), filePathList,num,parentPath);
                   num++;
               }
           }else{
               filePathList.add(sysFile);
               String subParentPath = parentPath+SystemConstant.SF_FILE_SEPARATOR+file.getName();
               getAllFilePaths(file.getAbsolutePath(), filePathList,num,subParentPath);
               num++;
           }
       } else {
           if(level!=0){
               sysFile.setParentPath(parentPath+SystemConstant.SF_FILE_SEPARATOR+file.getName());
               filePathList.add(sysFile);
               num++;
           }
       }
   }
   return filePathList;
}

获取文件内容:


@RequestMapping(value = "getContent", method = RequestMethod.POST)
public Result getContent(String filePath) throws FileNotFoundException {
   String path = ResourceUtils.getURL("classpath:").getPath();
   String content = FileUtil.readUtf8String(path+filePath);
   return Result.ok(content);
}

修改保存:


@RequestMapping(value = "save", method = RequestMethod.POST)
public Result save(String filePath, String content) throws FileNotFoundException {
   String path = ResourceUtils.getURL("classpath:").getPath();
   
   if(active.equals("prod")){
       return Result.error("演示环境禁止插插插!!!");
   }else{
       File file = new File(path+filePath);
       long lastModified = file.lastModified();
       FileUtil.writeUtf8String(content,path+filePath);
       file.setLastModified(lastModified);
       return Result.ok();
   }
}

当然了,如果代码修改比较多,也可以对文件进行上传覆盖操作。

截图

Java教程:SpringBoot在线代码修改器

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯