java-代码生成器
package ormRex; import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List; public class Test
{ private final static String dir = "/Users/caicai/work/space/qingread-api-entity/src/main/java/com/qingread/serial/entity"; public static void main(String[] args) throws IOException
{
File dirFile = new File(dir);
String[] allFileName = dirFile.list();
for (String fileName : allFileName)
{
if (fileName.contains("java") == false) continue;
Path path = Paths.get(dir, fileName);
List<String> alines = Files.readAllLines(path);
List<String> allLine = new ArrayList<>();
String json = "@JSONField(name=\"%s\")";
String dateJson = "@JSONField(name=\"%s\",format=\"yyyy-MM-dd HH:mm:ss\")";
// import com.alibaba.fastjson.annotation.JSONField;
for (String line : alines)
{
if (line.contains(" class "))
{
allLine.add("import com.alibaba.fastjson.annotation.JSONField;");
allLine.add("import java.io.Serializable;");
line = line.substring(, line.length() - );
line += " implements Serializable {";
allLine.add(line);
allLine.add("private static final long serialVersionUID = 1L;");
continue;
}
if (line.contains("private"))
{
// 关键字转下划线
String key = line.substring(line.lastIndexOf(" "), line.length() - );
key = key.trim();
String nKey = "";
for (int i = ; i < key.length(); i++)
{
char c = key.charAt(i);
if (Character.isUpperCase(c))
{
nKey += "_";
nKey += Character.toLowerCase(c);
continue;
}
nKey += c;
}
// 添加json修饰
if (line.contains("Date")) nKey = String.format(dateJson, nKey);
else
nKey = String.format(json, nKey);
allLine.add(nKey);
}
allLine.add(line);
}
PrintWriter pw = new PrintWriter(path.toFile());
for (String str : allLine)
{
pw.println(str);
}
pw.flush();
pw.close();
}
} }
添加fastJson和序列化修饰
java-代码生成器的更多相关文章
- 告别无止境的增删改查--Java代码生成器
转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器 有感于马上要做个比较大 ...
- 【转】20个Java 代码生成器
From: http://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html 1.1 CodeSmith 一款人气很旺国外的基于模板的dotne ...
- Java代码生成器CodeX4J介绍
用代码生成器生成一些固定的或有规律的代码,可以有效的提高工作效率.我写了个开源的,放在了GitHub上,希望能对有需要的朋友有所帮助. GitHub代码地址https://github.com/jac ...
- java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码
. 权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限. 按钮权限: 给角色分配按钮权限.2 ...
- Java代码生成器多表配置优化,增加自定义实体功能
目录 前言 多表配置优化 自定义实体 杂谈 结语 前言 最近利用零碎的时间对代码生成器做了进一步更新:优化多表配置模块,增加自定义实体功能,美化单表和多表配置的UI界面,修复用户反馈的若干bug, ...
- 这就是Java代码生成器的制作流程
1. 前言 前几天写了篇关于Mybatis Plus代码生成器的文章,不少同学私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器的流程. 2. 代码生成器的使用场 ...
- 告别无止境的增删改查:Java代码生成器
对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里.那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢? 有感于马上要做个比较 ...
- Java代码生成器Easy Code
EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml).只要是与数据库相关的代码都可以通过自定义模板来生成.支持数据库类型与java ...
- rapid-generator JAVA代码生成器
有感于马上要做个比较大的业务系统,想到那无止境的增删改查.粘贴复制,顿时脑后升起一阵凉风.于是想到个找或者写一个Java代码的生成器,这样在正常开发进度下,也能余下更多的时间去做些别的事情. 闲话少说 ...
- Java代码生成器加入postgresql数据库、HikariCP连接池、swagger2支持!
目录 前言 PostgreSql VS MySql HikariCP VS Druid Swagger2 自定义参数配置一览 结语 前言 最近几天又抽时间给代码生成器增加了几个新功能(预计今晚发布 ...
随机推荐
- 5V与3.3V电平互转
参考: http://blog.sina.com.cn/s/blog_7880f98301014fmj.html
- Ubuntu 14.04 正式版 12.4
安装Ubuntu 14.04后要做的5件事情 4月17日,开源免费系统Ubuntu官方正式宣布发布Ubuntu 14.04 LTS(代号Trusty Tahr)正式版.官方声称该版本主打云计算,在云平 ...
- XE5开发Android程序调用电话相关功能(短信息和电话) [转]
其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...
- js中input文本框设置和移除默认值
这里想实现的效果是:设置和移除文本框默认值,如下图鼠标放到文本框中的时候,灰字消失. 1.可以用简单的方式,就是给input文本框加上onfocus属性,如下代码: <input id=&quo ...
- pytest.1.快速开始
From: http://www.testclass.net/pytest/quick_start/ 简介 pytest测试框架可以让我们很方便的编写测试用例,这些用例写起来虽然简单,但仍然可以规模化 ...
- 【剑指offer】两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. public class Solution { Stack<Integer> stack ...
- 三星GT-N8010刷机教程
本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ...
- css 规则中两个类连在一起是什么意思?
原文地址:http://www.cxybl.com/html/wyzz/CSS/20120601/27374.html 比如: .c1.c2 { text-decoration:underline; ...
- 文字超长隐藏为...ie7不兼容的解决办法
把li里的a设置display:block; 代码如下: html: <ul> <li><span>2014-8-27</span><a href ...
- go语言学习--map中键值得删除
测试 map1 中是否存在 key1: 在例子 8.1 中,我们已经见过可以使用 val1 = map1[key1] 的方法获取 key1 对应的值 val1.如果 map 中不存在 key1,val ...