软件外包都是体力活啊,这是入行后老人的第一句话。
幸好老人还有第二句话,自己写代码生成工具吧。
果然发现自己做的工作,完全可以靠工具来生成。
背景
一堆重复性工作:
注释,javabean,domain object与 TO 以及TO与BO的互相设值,bean的基本校验,如长度,非空,是否必选......
基本思路是
读取开发文档生成必要的xml,解析XML然后通过模板文件替换或添加.....
1.为啥要XML,因为它这种数据结构比较强大,而且我也不一定能自己构建出比较好的数据结构,比较菜.....
2.为啥用groovy,因为开发环境里面只有这个脚本语言,又不想用java这种八股文去长篇大论。而且groovy解析xml还算简单。
目前遇到的困难:
因为domainObject关系挺多的,子类,父类,还有inner lass,如何高效生成完整的domain的field结构图,比较头疼。
注意是domain的字段结构图
具体问题描述:
举例来说:
public class Guest extends Person{
private Address address;
}
public class Address {
private String addressName;
}
那这个guest的domain field结构图就是
Guest.Address.addressName
如果person里面还有料的话,比如
public class Person{
private String name;
}
那 domain的field结构图 又变成了
Guest.Address.addressName
Guest.name
现在的做法:
两个list,从一个起点开始,读取文件,遇见自定义类型,保存类型,继续读文件,直到读到基本类型再push进list,然后退回到上一层,pop掉刚才的那层,读上一层其他字段......
遇到有重复N的自定义类型,就得读N遍文件,还得用set来保证字段的唯一性,我艹.....
缺点
假设有N个bean 每个bean的有M个自定义字段,每个自定义字段有L层,假设M个字段不重复,L层不重复,则我要进行 N*M*L次文件操作,我果然很浪费时间啊,看来还要换个思路
有空去研究下javaDoc的生成class结构把
————————————————————————————————————————
现在完全没有动力,工作的最大动力就是完善自己的工作代码生成工具.然后看自己的东西。
分享到:
相关推荐
通过`groovy.lang.GroovyShell`或`groovy.lang.GroovyScriptEngine`,你可以方便地运行Groovy代码片段,而无需构建完整的Groovy项目。这种方式适用于快速原型开发、自动化测试或动态配置等场景,它减少了代码量,...
还有代码生成器如Apache Thrift或Protocol Buffers,它们将定义的服务协议转换为多语言的客户端和服务端代码。 2. **配置文件自动更改**: 配置文件自动更改通常涉及到配置管理工具,它们允许开发者在不修改代码的...
Groovy代码可以轻松地调用Java API,并可以将Groovy类编译成Java字节码,这意味着Groovy程序可以运行在任何标准的Java环境中。 在给定文件的【部分内容】中,我们可以看到Groovy的诸多特性体现: - `println`用于...
总结起来,Java的Regex提供了基础的文本处理能力,Groovy的代码生成则更注重动态性和灵活性,ANTLR则专精于解析和生成复杂语法结构的代码。理解并熟练掌握这些工具,将有助于提升开发效率,简化复杂任务,同时也为...
8. **Groovy插件的其他功能**:除了基本的开发工具,Groovy插件还可能包含其他实用功能,如代码重构工具、生成文档、依赖管理等,这些都是提高开发效率的关键要素。 9. **持续集成与构建工具**:在Groovy项目中,...
3. **Groovy Shell和GroovyConsole**: 这两个工具是学习和测试Groovy代码的好帮手,可以快速尝试和验证代码片段。 4. **GString**: Groovy的字符串支持模板语法,可以方便地进行字符串格式化,如`"Hello, ${name}"`...
【标题】: "基于JavaFX8的图形界面Vert.x代码生成器" 【描述】: 这个项目是一个利用JavaFX8技术构建的图形用户界面工具,它的主要功能是自动生成Vert.x框架相关的代码。Vert.x是一个轻量级、高性能、反应式应用开发...
ASM-3.2作为一个强大的代码生成工具,为开发者提供了深入控制Java字节码的能力,广泛应用于各种复杂场景。通过熟练使用ASM,开发者可以实现高效、灵活的代码生成和修改,提高程序的可扩展性和安全性。在实际项目中,...
此外,GroovyShell和GroovyConsole提供交互式环境,便于测试和调试Groovy代码。 4. ** Grape**:Grape是Groovy的依赖管理机制,类似于Maven或Gradle的仓库管理功能,它可以帮助开发者自动下载并管理项目所需的依赖...
总结起来,"gradle项目生成crud代码"涉及了Gradle插件的使用,特别是那些能够自动化创建CRUD操作的插件。通过合理地配置和定制,你可以大大提高开发效率,减少重复的工作,同时保持代码的整洁和一致性。在实际开发中...
总结来说,`ireport`配合`jasperreports`和Groovy,为Java开发者提供了一套强大的报表设计和生成解决方案。通过`ireport`的图形化界面设计报表,结合`jasperreports`的丰富功能和Groovy的动态脚本,可以轻松地创建出...
Groovy代码可以与Java代码混编,共享相同的类库和资源。这意味着你可以利用已有的Java生态系统,同时享受Groovy带来的生产力提升。 在标签"源码"方面,学习Groovy时,理解其字节码生成和运行机制是很关键的。Groovy...
Groovy的动态性质意味着它是一种更自由、更加面向对象的编程语言,它能够通过语言本身的特性实现强大的功能,如Groovy构建器(Builders)和Grails框架,而无需进行代码生成。 **Grails概述** Grails是一个基于...
总结,使用IntelliJ IDEA和Hibernate进行代码生成可以极大地提升开发效率,简化数据库操作。通过理解和熟练掌握这一过程,开发者可以更好地适应敏捷开发的需求,快速迭代项目。而提供的压缩包文件则包含了代码生成后...
QueryDsl 的代码生成工具会扫描这些注解,然后根据实体类的结构来自动生成对应的 QModel。 ##### 2.2 方法 1. **使用 QueryDsl 的 codegen 包**: - QueryDsl 提供了 `GenericExporter` 类,该类可以通过简单的...
1. **Groovy解释器**:负责解析并执行Groovy代码。它将Groovy源码转换为字节码,然后由JVM执行。 2. **类库**:Groovy依赖于一套完整的类库,这些类库提供了各种功能,如IO操作、网络通信、反射、异常处理等,这些...
- **说明**: Groovy 中的 `yield` 语法类似于 Python 和 Ruby 中的迭代器生成方式,可以通过闭包来创建迭代器。 - **示例代码**: ```groovy class Foo { static void main(String[] args) { // yield 代码示例 ...
在Groovy编程语言中,有一些特殊的注解可以增强代码的功能和效率。在这篇文章中,我们将探讨三个关键的注解:`@Canonical`、`@Delegate`和`@Immutable`,...掌握这些注解的使用,能够让你的Groovy代码更加高效和优雅。
总结来说,这个辅助类“generate”是用于简化Hibernate配置的工具,它可以自动生成配置文件和映射XML,提高开发效率,是Java开发中的一个实用工具。如果你是初学者,通过研究这个工具的源码,不仅可以了解Hibernate...
总结来说,Android GreenDAO是一个强大的工具,能够帮助开发者快速构建与SQLite数据库交互的代码,通过自动化的Entity生成,降低了手动编写SQL的负担,提高了开发效率。同时,其简洁的API设计使得数据库操作变得直观...