在試用springmvc時,使用@RequestMapping進行路徑映射。特別是移動端,須要對映射路徑進行打印,生成表格,以便其餘平臺進行模板調用。因而咱們來討論一下spring
對該項目須要整理的路徑的基本讀取配置。
這裏選用項目路徑,路徑包,輸出的位置,是否直接覆蓋文件這四個配置項。api
//項目路徑 private static String PROJECT_PATH = "F:/eclipse/workspace/created/src/"; //掃描包 private static String SACNNER_PACKAGE = "com/create/api/"; //輸出文件的映射路徑的位置 private static String WRITE_TXT_PATH = "F:/mapper.txt"; //是否直接覆蓋文件 private static boolean RE_WRITE = true;
如下爲主題代碼內容mvc
/** * 寫出文檔 */ private void writerMapper(){ File write_file = new File(WRITE_TXT_PATH); if(write_file.exists()&&!RE_WRITE){ System.out.println("文件已存在 "+write_file.getAbsolutePath()); return; } if(RE_WRITE){ System.out.println("文件覆蓋寫入..."); } String[] filepathes = getFilePathes(PROJECT_PATH+SACNNER_PACKAGE); Writer w= null; try { w = new FileWriter(write_file); for (int i = 0; i < filepathes.length; i++) { File f = new File(PROJECT_PATH+SACNNER_PACKAGE+filepathes[i]); try { w.write("\r\n"); w.write("[======="+filepathes[i]+"========]\r\n"); w.write(readMapper(f)); w.flush(); } catch (IOException e) { e.printStackTrace(); } } w.close(); } catch (IOException e1) { e1.printStackTrace(); } System.out.println("文件寫入完成 "+write_file.getAbsolutePath()); } /** * 獲取目標路徑下全部的文件名稱 * @param parentPath * @return */ private String[] getFilePathes(String parentPath){ File f = new File(parentPath); String[] fiel = f.list(); return fiel; } /** * 讀取文件下的@RequestMapper註解,將整理好的路徑內容返回 * @param parentPath */ private String readMapper(File f) throws IOException{ BufferedReader br = new BufferedReader(new FileReader(f)); StringBuffer sb = new StringBuffer(); int i = 0; String classpath = ""; while (br.ready()){ String mapper = br.readLine(); mapper = trim(mapper); if(mapper.startsWith("@RequestMapping")){ String m = mapper.substring("@RequestMapping(".length(),mapper.length()-1); m = m.replace("value=", ""); m = m.replace("method=RequestMethod.", ""); m = m.replace("\"", ""); if(i==0){ classpath = m; i++; continue; }else{ sb.append(i+". "); } sb.append(classpath); sb.append(m); if(i>0) if(!(m.endsWith("GET")||m.endsWith("POST"))) sb.append(",GET"); String nextLine = br.readLine(); nextLine = trim(nextLine); String ending = " 頁面跳轉"; if(nextLine.startsWith("@ResponseBody")){ ending=" 獲取數據 "; } sb.append(ending); sb.append(" [ ]"); sb.append("\r\n"); i++; } } br.close(); return sb.toString(); }
在操做時須要對空白字符所有去除,空白字符包括 \n 回車(\u000a) \t 水平製表符(\u0009) \s 空格(\u0008) \r 換行(\u000d)
具體操做app
/** * 去掉空白字符 * @param str * @return */ private String trim(String str){ str = str.replace(" ", "") .replace("\t", "") .trim(); return str; }
至此已經完成內容eclipse
在內容上面須要擴展的部分spa
寫的時候發現,導出的路徑方式須要提供內容描述,可是本文中只提供了[] 符號,用於填寫路徑描述,因此該部分不夠完善。
所以,在完成這部分時,須要添加註釋註解 @title
或者此外的任意便於識別的註釋註解,在讀取時,就將標題內容讀取出來,在讀取到該部分的時候將標題插入。code
去掉的字符應該包括 [value=] [param=]兩組
更多擴展須要本身拓展。ip