背景:
已经完成或者持续更新的一个项目,已经有上千个业务接口,需要在这上千个业务接口上添加一个我自定义的注解,不可能一个一个添加呀!!!
所以应该批量吧:批量操作使用缓存流
package com.dakun.jianzhong.config; import java.io.*; /** * 在文件指定位置添加注解 * @author Administrator * */ public class ContentReplace { private static int i=0; public static void main(String[] args) { //File file = new File("D:\\Program Files\\project\\IdeaProjects\\social-service\\src\\main\\java\\com\\dakun\\jianzhong\\controller"); //File file = new File("D:\\Program Files\\project\\IdeaProjects\\resource-service\\src\\main\\java\\com\\dakun\\jianzhong\\controller"); //File file = new File("D:\\Program Files\\project\\IdeaProjects\\product-service\\src\\main\\java\\com\\dakun\\jianzhong\\controller"); File file = new File("D:\\Program Files\\project\\IdeaProjects\\account-service\\src\\main\\java\\com\\dakun\\jianzhong\\controller"); list(file); System.out.println("总修改:"+i+"处。"); } private static void list(File file){ File[] listFiles = file.listFiles(); for (File file2 : listFiles) { if (file2.isFile()) { try { StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader(new FileReader(file2)); String s=""; boolean change=false; while ((s=br.readLine())!=null) { if (s.indexOf("@PostMapping")>-1||s.indexOf("@GetMapping")>-1||s.indexOf("@RequestMapping")>-1) { sb.append(s); sb.append("\r\n"); change=true; sb.append(" @IsPublic"); i++; }else { sb.append(s); } sb.append("\r\n"); } br.close(); if (change) { BufferedWriter bw = new BufferedWriter(new FileWriter(file2)); bw.write(sb.toString()); bw.close(); System.out.println(++i); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }else { list(file2); } } } }
最终修改1285处,在1000个左右的接口上成功添加了自定义的注解。
参考学习:http://www.aichengxu.com/java/2863530.htm