`
ezzze
  • 浏览: 42928 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【总结】groovy写着玩的代码生成

阅读更多
软件外包都是体力活啊,这是入行后老人的第一句话。

幸好老人还有第二句话,自己写代码生成工具吧。

果然发现自己做的工作,完全可以靠工具来生成。

背景
一堆重复性工作:注释,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结构把


————————————————————————————————————————

现在完全没有动力,工作的最大动力就是完善自己的工作代码生成工具.然后看自己的东西。


分享到:
评论

相关推荐

    Java中使用Groovy的三种方式

    通过`groovy.lang.GroovyShell`或`groovy.lang.GroovyScriptEngine`,你可以方便地运行Groovy代码片段,而无需构建完整的Groovy项目。这种方式适用于快速原型开发、自动化测试或动态配置等场景,它减少了代码量,...

    代码自动生成和配置文件自动更改的工具

    还有代码生成器如Apache Thrift或Protocol Buffers,它们将定义的服务协议转换为多语言的客户端和服务端代码。 2. **配置文件自动更改**: 配置文件自动更改通常涉及到配置管理工具,它们允许开发者在不修改代码的...

    groovy基础语法.pdf

    Groovy代码可以轻松地调用Java API,并可以将Groovy类编译成Java字节码,这意味着Groovy程序可以运行在任何标准的Java环境中。 在给定文件的【部分内容】中,我们可以看到Groovy的诸多特性体现: - `println`用于...

    codeGenerationCompared:Java regex Groovy ANTLR 代码生成对比

    总结起来,Java的Regex提供了基础的文本处理能力,Groovy的代码生成则更注重动态性和灵活性,ANTLR则专精于解析和生成复杂语法结构的代码。理解并熟练掌握这些工具,将有助于提升开发效率,简化复杂任务,同时也为...

    包含groovy plugin tools, eclemma 测试覆盖率4

    8. **Groovy插件的其他功能**:除了基本的开发工具,Groovy插件还可能包含其他实用功能,如代码重构工具、生成文档、依赖管理等,这些都是提高开发效率的关键要素。 9. **持续集成与构建工具**:在Groovy项目中,...

    Groovy 学习笔记

    3. **Groovy Shell和GroovyConsole**: 这两个工具是学习和测试Groovy代码的好帮手,可以快速尝试和验证代码片段。 4. **GString**: Groovy的字符串支持模板语法,可以方便地进行字符串格式化,如`"Hello, ${name}"`...

    基于javafx8开发的图形界面Vert.x代码生成器,使用 Apache Fre.zip

    【标题】: "基于JavaFX8的图形界面Vert.x代码生成器" 【描述】: 这个项目是一个利用JavaFX8技术构建的图形用户界面工具,它的主要功能是自动生成Vert.x框架相关的代码。Vert.x是一个轻量级、高性能、反应式应用开发...

    代码生成工具asm-3.2

    ASM-3.2作为一个强大的代码生成工具,为开发者提供了深入控制Java字节码的能力,广泛应用于各种复杂场景。通过熟练使用ASM,开发者可以实现高效、灵活的代码生成和修改,提高程序的可扩展性和安全性。在实际项目中,...

    apache-groovy-sdk-3.0.9

    此外,GroovyShell和GroovyConsole提供交互式环境,便于测试和调试Groovy代码。 4. ** Grape**:Grape是Groovy的依赖管理机制,类似于Maven或Gradle的仓库管理功能,它可以帮助开发者自动下载并管理项目所需的依赖...

    gradle项目生成crud代码

    总结起来,"gradle项目生成crud代码"涉及了Gradle插件的使用,特别是那些能够自动化创建CRUD操作的插件。通过合理地配置和定制,你可以大大提高开发效率,减少重复的工作,同时保持代码的整洁和一致性。在实际开发中...

    ireport(jasperreports-5.6+groovy-2.1.3)

    总结来说,`ireport`配合`jasperreports`和Groovy,为Java开发者提供了一套强大的报表设计和生成解决方案。通过`ireport`的图形化界面设计报表,结合`jasperreports`的丰富功能和Groovy的动态脚本,可以轻松地创建出...

    groovy学习

    Groovy代码可以与Java代码混编,共享相同的类库和资源。这意味着你可以利用已有的Java生态系统,同时享受Groovy带来的生产力提升。 在标签"源码"方面,学习Groovy时,理解其字节码生成和运行机制是很关键的。Groovy...

    grails和groovy的电子书-2

    Groovy的动态性质意味着它是一种更自由、更加面向对象的编程语言,它能够通过语言本身的特性实现强大的功能,如Groovy构建器(Builders)和Grails框架,而无需进行代码生成。 **Grails概述** Grails是一个基于...

    idea+hibernate生成.zip

    总结,使用IntelliJ IDEA和Hibernate进行代码生成可以极大地提升开发效率,简化数据库操作。通过理解和熟练掌握这一过程,开发者可以更好地适应敏捷开发的需求,快速迭代项目。而提供的压缩包文件则包含了代码生成后...

    QueryDsl自动生成QModel(注解扫描annotation-processor)

    QueryDsl 的代码生成工具会扫描这些注解,然后根据实体类的结构来自动生成对应的 QModel。 ##### 2.2 方法 1. **使用 QueryDsl 的 codegen 包**: - QueryDsl 提供了 `GenericExporter` 类,该类可以通过简单的...

    GroovyBinary

    1. **Groovy解释器**:负责解析并执行Groovy代码。它将Groovy源码转换为字节码,然后由JVM执行。 2. **类库**:Groovy依赖于一套完整的类库,这些类库提供了各种功能,如IO操作、网络通信、反射、异常处理等,这些...

    Groovy+quick+start.pdf

    - **说明**: Groovy 中的 `yield` 语法类似于 Python 和 Ruby 中的迭代器生成方式,可以通过闭包来创建迭代器。 - **示例代码**: ```groovy class Foo { static void main(String[] args) { // yield 代码示例 ...

    groovy中的特殊注解1

    在Groovy编程语言中,有一些特殊的注解可以增强代码的功能和效率。在这篇文章中,我们将探讨三个关键的注解:`@Canonical`、`@Delegate`和`@Immutable`,...掌握这些注解的使用,能够让你的Groovy代码更加高效和优雅。

    生成hibernate配置文件和xml的辅助类generate

    总结来说,这个辅助类“generate”是用于简化Hibernate配置的工具,它可以自动生成配置文件和映射XML,提高开发效率,是Java开发中的一个实用工具。如果你是初学者,通过研究这个工具的源码,不仅可以了解Hibernate...

    android greenADO自动生成entity代码

    总结来说,Android GreenDAO是一个强大的工具,能够帮助开发者快速构建与SQLite数据库交互的代码,通过自动化的Entity生成,降低了手动编写SQL的负担,提高了开发效率。同时,其简洁的API设计使得数据库操作变得直观...

Global site tag (gtag.js) - Google Analytics