欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot在線代碼修改器的問題及解決方法

 更新時(shí)間:2020年06月08日 11:08:59   作者:小柒2012  
這篇文章主要介紹了SpringBoot在線代碼修改器的問題及解決方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

項(xiàng)目上線之后,如果是后端報(bào)錯(cuò),只能重新編譯打包部署然后重啟;如果僅僅是前端頁面、樣式、腳本修改,只需要替換到就可以了。

小公司的話可能比較自由,可以隨意替換,但是有些公司權(quán)限設(shè)置的比較嚴(yán)格,需要提交申請(qǐng)交給運(yùn)維去處理。

如果僅僅是一個(gè)前端問題,又很緊急,這時(shí)候提申請(qǐng)走流程勢(shì)必會(huì)影響到用戶的正常使用。

今天,擼主給大家推薦一款前端代碼文件編輯器來解決以上問題。

案例

定義實(shí)體,用于前端文件樹展示:

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

由于項(xiàng)目采用的是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;
}

獲取文件內(nèi)容:

/**
 * 獲取內(nèi)容
 * @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);
}

修改保存:

/**
 * 保存內(nèi)容
 * @return
 */
@RequestMapping(value = "save", method = RequestMethod.POST)
public Result save(String filePath, String content) throws FileNotFoundException {
 String path = ResourceUtils.getURL("classpath:").getPath();
 /**
 * 生產(chǎn)環(huán)境自行解除
 */
 if(active.equals("prod")){
 return Result.error("演示環(huán)境禁止插插插?。?!");
 }else{
 File file = new File(path+filePath);
 long lastModified = file.lastModified();
 FileUtil.writeUtf8String(content,path+filePath);
 file.setLastModified(lastModified);
 return Result.ok();
 }
}

當(dāng)然了,如果代碼修改比較多,也可以對(duì)文件進(jìn)行上傳覆蓋操作。

截圖

小結(jié)

如果身邊恰好沒有工具連接遠(yuǎn)程服務(wù),亦或是自己沒有服務(wù)器的權(quán)限,這款在線修改器,擼主覺得還是很方便的。但一定要控制好權(quán)限,防止普通人員亂修改,還有一定要做好安全日志記錄。

源碼

https://gitee.com/52itstyle/SPTools

到此這篇關(guān)于SpringBoot在線代碼修改器的文章就介紹到這了,更多相關(guān)SpringBoot在線代碼修改器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法詳細(xì)講解

    Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法詳細(xì)講解

    這篇文章主要介紹了Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • java如何根據(jù)PostMan發(fā)送請(qǐng)求設(shè)置接口請(qǐng)求工具類

    java如何根據(jù)PostMan發(fā)送請(qǐng)求設(shè)置接口請(qǐng)求工具類

    在Java中調(diào)用第三方接口可以通過不同的方式,如使用GET、POST等請(qǐng)求,關(guān)鍵點(diǎn)包括設(shè)置正確的請(qǐng)求方式、URL、參數(shù)(params)、頭信息(headers)和請(qǐng)求體(body),對(duì)于不同的數(shù)據(jù)格式,如XML和JSON,需在header中聲明內(nèi)容類型
    2024-09-09
  • 如何通過Java生成一個(gè)隨機(jī)數(shù)

    如何通過Java生成一個(gè)隨機(jī)數(shù)

    當(dāng)我們需要在Java中生成隨機(jī)數(shù)時(shí),可以借助JDK中提供的Random類來實(shí)現(xiàn),通過使用Random類,我們可以輕松地生成各種類型的隨機(jī)數(shù),下面我們就來看看如何利用Random類生成隨機(jī)數(shù)吧
    2023-09-09
  • Java解析XML格式數(shù)據(jù)的方法詳解

    Java解析XML格式數(shù)據(jù)的方法詳解

    這篇文章主要介紹了Java解析XML格式數(shù)據(jù)的方法,并展示了較為常用的Java dom來解析XML的例子,需要的朋友可以參考下
    2015-10-10
  • 老生常談 java匿名內(nèi)部類

    老生常談 java匿名內(nèi)部類

    下面小編就為大家?guī)硪黄仙U刯ava匿名內(nèi)部類。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • 使用res:bean屬性復(fù)制避免null值覆蓋版本

    使用res:bean屬性復(fù)制避免null值覆蓋版本

    這篇文章主要介紹了使用res:bean屬性復(fù)制避免null值覆蓋版本的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 一篇文章教會(huì)你使用java爬取想要的資源

    一篇文章教會(huì)你使用java爬取想要的資源

    這篇文章主要介紹了使用java爬蟲爬取想要的資源,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 擲6面骰子6000次每個(gè)點(diǎn)數(shù)出現(xiàn)的概率

    擲6面骰子6000次每個(gè)點(diǎn)數(shù)出現(xiàn)的概率

    今天小編就為大家分享一篇關(guān)于擲6面骰子6000次每個(gè)點(diǎn)數(shù)出現(xiàn)的概率,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 在Java中動(dòng)態(tài)執(zhí)行字符串代碼的方法小結(jié)

    在Java中動(dòng)態(tài)執(zhí)行字符串代碼的方法小結(jié)

    在Java編程中,靜態(tài)編譯的特性通常不允許我們直接執(zhí)行運(yùn)行時(shí)生成的代碼,然而,有時(shí)我們需要?jiǎng)討B(tài)地生成并執(zhí)行代碼片段,本文將詳細(xì)介紹如何在Java中運(yùn)行一段字符串代碼,并提供詳細(xì)的代碼案例和運(yùn)行結(jié)果,需要的朋友可以參考下
    2024-08-08
  • spring緩存cache的使用詳解

    spring緩存cache的使用詳解

    這篇文章主要介紹了spring緩存cache的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論