时间:2021-05-20
前言
项目上线之后,如果是后端报错,只能重新编译打包部署然后重启;如果仅仅是前端页面、样式、脚本修改,只需要替换到就可以了。
小公司的话可能比较自由,可以随意替换,但是有些公司权限设置的比较严格,需要提交申请交给运维去处理。
如果仅仅是一个前端问题,又很紧急,这时候提申请走流程势必会影响到用户的正常使用。
今天,撸主给大家推荐一款前端代码文件编辑器来解决以上问题。
案例
定义实体,用于前端文件树展示:
@Datapublic class SysFile { private Integer fileId; private String name; private Integer parentId; private String parentPath;}由于项目采用的是SpringBoot框架,打成了war包部署,后端采用以下方式获取文件列表:
/** * 列表 * @return */@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);}递归获取某目录下的所有子目录以及子文件:
/** * 递归获取某目录下的所有子目录以及子文件 * @param filePath * @param filePathList * @return */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;}获取文件内容:
/** * 获取内容 * @return */@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);}修改保存:
/** * 保存内容 * @return */@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(); }}当然了,如果代码修改比较多,也可以对文件进行上传覆盖操作。
截图
小结
如果身边恰好没有工具连接远程服务,亦或是自己没有服务器的权限,这款在线修改器,撸主觉得还是很方便的。但一定要控制好权限,防止普通人员乱修改,还有一定要做好安全日志记录。
源码
https://gitee.com/52itstyle/SPTools
到此这篇关于SpringBoot在线代码修改器的文章就介绍到这了,更多相关SpringBoot在线代码修改器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
gg修改器守护进程未运行的解决方法如下: 1、在页面上先打开的GG,打开之后如果是设置不成功会弹出无法获得root的提示; 2、要做的就是打开设置、授权管理
葫芦侠游戏修改器,是一款通用手机游戏的修改器(单机游戏),它可以帮助玩家减少游戏中的垃圾时间,让繁忙的我们也能更好的体验游戏带来的乐趣!葫芦侠修改器可以修改游戏
mac地址修改器是一款免费小巧的工具,但是还有很多朋友不知道怎么使用mac地址修改器,今天小编就为大家带来mac地址修改器的使用教程。软件名称:mac地址修
IDEA端口占用解决方法后台开发时经常遇到端口占用问题IntellijIDEA端口占用解决方法:方法1:打开任务管理器,关闭java进程;方法2:修改端口号的方
以QQ为例,QQ群头衔修改失败的原因及解决方法如下: 1、网络的问题,更换良好的网络环境尝试。 2、qq服务器的问题,耐心等待官方修复即可。 QQ是腾讯Q