需求分析:
在业务开发过程当中,是否经常会遇到都是类似的代码,需要各种重复创建java类来满足业务需求。
现提供如下方法,进行批量创建类似的java类,按照需求进行内部内容逐个修改即可。
实现代码:
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Test6 {
public static void main(String[] args) {
// 拷贝文件模板
String demo = "/Users/wenxuechao/Workspace/MyWorkspace/myWork/maven/Test/src/test/demo.txt";
// 创建的java类的区别名字
String[] target = {"wen1", "wen2", "wen3", "wen4"};
// 创建java类的存放路径
String targetURL = "/Users/wenxuechao/Workspace/MyWorkspace/myWork/maven/Test/src/test/";
for (int i = 0; i < target.length; i++) {
try {
BufferedReader bufReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(demo))));//数据流读取文件
StringBuffer strBuffer = new StringBuffer();
String empty = "";
String replace = "XXX";
for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {
//判断当前行是否存在想要替换掉的字符 -1表示存在
if(temp.indexOf("XXX") != -1){
//按照业务需求进行替换内容
temp = temp.replace(replace, target[i]);
}
strBuffer.append(temp);
//行与行之间的分割
strBuffer.append(System.getProperty("line.separator"));
}
bufReader.close();
//替换后输出的文件位置
PrintWriter printWriter = new PrintWriter(targetURL+target[i]+"DEMO.java");
printWriter.write(strBuffer.toString().toCharArray());
printWriter.flush();
printWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
模板文件内容:
package test;
public class AXXXDEMO {
private String a1;
private String a2;
private String a3;
public String getA1() {
return a1;
}
public void setA1(String a1) {
this.a1 = a1;
}
public String getA2() {
return a2;
}
public void setA2(String a2) {
this.a2 = a2;
}
public String getA3() {
return a3;
}
public void setA3(String a3) {
this.a3 = a3;
}
}
场景分析:
模板文件基本上为大体内容一致的部分,只有java类名不同,或里面局部内容不同。具体类名可以按照需求进行填入,可以进行批量生成java类文件。
具体案例:
现有如下表:TB1,TB2,TB3,TB4,现需要创建对应的BackupTB1Action,BackupTB2Action,BackupTB3Action,BackupTB4Action,里面的内容按照需求进行编写。
这样,可以将四个表放置到数组当中,修改模板文件,将表名部分用XXX替换,执行main方法,自动进行创建。将XXX替换成对应表明,则可以免去繁琐的创建。
思路扩展:
按照此方案,可以进行扩展,比如更多的前台页面,或者对应的ACTION等类,增删改查的部分代码均类似,因此该部分均可以使用模板文件进行创建,后续仅需要按照业务逻辑进行补充即可,大大提高开发效率。