package cn.tx.utils;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class SourceGenerator {
public static void main(String[] args) throws Exception {
generator("Menu");
}
public static void generator(String className) throws Exception{
generQuery(className);
generDao(className);
generDaoImpl(className);
generService(className);
generServiceImpl(className);
generDaoConfig(className);
generServiceConfig(className);
generAction(className);
generSpringActionConfig(className);
}
/**
* 生成查询对象
* @param ClassName
* @throws Exception
*/
public static void generQuery(String ClassName) throws Exception{
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoQuery.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/query/"+ClassName+"Query.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
/**
* 生成dao
* @param ClassName
* @throws Exception
*/
public static void generDao(String ClassName) throws Exception{
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoDao.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/dao/"+ClassName+"Dao.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
public static void generDaoImpl(String ClassName) throws Exception{
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoDaoImpl.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/dao/impl/"+ClassName+"DaoImpl.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
public static void generService(String ClassName) throws Exception{
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoService.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/service/"+ClassName+"Service.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
public static void generServiceImpl(String ClassName) throws Exception{
//获得小写的类名
String lowerCaseClassName = ClassName.substring(0, 1).toLowerCase() + ClassName.substring(1);
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoServiceImpl.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/service/impl/"+ClassName+"ServiceImpl.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName).replace("demo", lowerCaseClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
public static void generDaoConfig(String ClassName) throws Exception{
//获得小写的类名
String lowerCaseClassName = ClassName.substring(0, 1).toLowerCase() + ClassName.substring(1);
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileReader("config/ApplicationContext-dao.xml"));
Element rootElement = doc.getRootElement();
Element newEle = rootElement.addElement("bean")
.addAttribute("id", lowerCaseClassName+"Dao")
.addAttribute("class", "cn.tx.dao.impl."+ClassName+"DaoImpl");
newEle.addElement("property")
.addAttribute("name", "sessionFactory")
.addAttribute("ref", "sessionFactory");
XMLWriter writer = new XMLWriter(new FileWriter("config/ApplicationContext-dao.xml"), OutputFormat.createPrettyPrint());
writer.write(doc);
writer.close();
}
public static void generServiceConfig(String ClassName) throws Exception{
//获得小写的类名
String lowerCaseClassName = ClassName.substring(0, 1).toLowerCase() + ClassName.substring(1);
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileReader("config/ApplicationContext-service.xml"));
Element rootElement = doc.getRootElement();
Element newEle = rootElement.addElement("bean")
.addAttribute("id", lowerCaseClassName+"Service")
.addAttribute("class", "cn.tx.service.impl."+ClassName+"ServiceImpl");
newEle.addElement("property")
.addAttribute("name", lowerCaseClassName+"Dao")
.addAttribute("ref", lowerCaseClassName+"Dao");
XMLWriter writer = new XMLWriter(new FileWriter("config/ApplicationContext-service.xml"), OutputFormat.createPrettyPrint());
writer.write(doc);
writer.close();
}
public static void generAction(String ClassName) throws Exception{
//获得小写的类名
String lowerCaseClassName = ClassName.substring(0, 1).toLowerCase() + ClassName.substring(1);
BufferedReader br = new BufferedReader(new FileReader("config/cn/tx/template/DemoAction.tlf"));
BufferedWriter bw = new BufferedWriter(new FileWriter("src/cn/tx/controller/"+ClassName+"Action.java"));
String line = null;
String newLine = null;
while((line = br.readLine()) != null){
newLine = line.replace("Demo", ClassName).replace("demo", lowerCaseClassName);
bw.write(newLine);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
public static void generSpringActionConfig(String ClassName) throws Exception{
//获得小写的类名
String lowerCaseClassName = ClassName.substring(0, 1).toLowerCase() + ClassName.substring(1);
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileReader("config/ApplicationContext-action.xml"));
Element rootElement = doc.getRootElement();
Element newEle = rootElement.addElement("bean")
.addAttribute("id", lowerCaseClassName+"Action")
.addAttribute("class", "cn.tx.controller."+ClassName+"Action")
.addAttribute("scope", "prototype");
newEle.addElement("property")
.addAttribute("name", lowerCaseClassName+"Service")
.addAttribute("ref", lowerCaseClassName+"Service");
XMLWriter writer = new XMLWriter(new FileWriter("config/ApplicationContext-action.xml"), OutputFormat.createPrettyPrint());
writer.write(doc);
writer.close();
}
}
代码生成器案例
原创
©著作权归作者所有:来自51CTO博客作者Java全栈研发大联盟的原创作品,请联系作者获取转载授权,否则将追究法律责任
代码生成器案例
https://blog.51cto.com/JavaAlliance/3082344
代码生成器案例
https://blog.51cto.com/JavaAlliance/3082344
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
牛逼,腾讯可视化,低代码生成器,正式开源!
腾讯tmagic-editor是一个所见即所得的页面可视化编辑器,实现零代码/低代码生成页面,可以快速搭建可视化页面生产平台,让非技术人
可视化 java vue python react -
31【源码】数据可视化:基于 Echarts + Python Flask 动态实时【拖放】大屏 - 数据分析看板
我是 YYDataV数据可视化专注于数据可视化大屏
python javascript echarts 前端 可视化 -
22个实用的前端工具 给大家~
一、CSS布局生成器Layout:https://layout.bradwoods.io/customize它是一个全功能的 CSS 和 JSX 生成器,用于使用 CSS Grid 布局语...
css java html javascript react -
这个低代码生成器开源了!
腾讯tmagic-editor是一个所见即所得的页面可视化编辑器,实现零代码/低代码生成页面,可以快速搭建可视化页面生产平台,让非技术人员可以通过拖拽和配置
可视化 vue java python react -
【Spring Cloud Alibaba】Mybatis Plus 代码生成器
文章目录【Spring Cloud Alibaba】Mybatis Plus 代码生成器1、spring-cloud-alibaba-mybatis-plus-generator2、搭建
java 微服务 spring cloud spring 代码生成器