SpringSide中文论坛



原帖内容
lovefanx

2007-4-9 17:47
基于SpringSide的代码生成工具实现思路初探

最近仔细研究了一下springside,感觉非常好。

最让我觉得舒服的是HibernateEntitiDao和StrutsEntityAction这两个父类,实在太爽了,可以节省不少代码。

假如一个对象的crud代码有50行,如果一个系统有100个基本数据对象,那就能立即节省5000行代码。

 

看了一下helloworld和bookstore的示例代码,第一感觉就是,如果加上一个基于springside的best practice的代码生成工具,那就更好了。

可喜的是,我马上就发现论坛上susu兄弟贴出了他的代码生成的工具,借助FreeMarker实现,和我的思路一样。

 

今天仔细研究了一下susu的代码生成工工具,发现目前功能还是有所欠缺(susu,此处希望和你探讨相关问题,无贬低之意,请海涵)。

1、生成的代码,无法按照数据库中的表直接生成。

2、生成的代码,每个对象的属性都是一样的,还需要一个一个去修改,比较麻烦。

 

所以,在此提出我的一点想法或者说思路,供有志于代码生成的兄弟参考一二。

1、生成工具最好能够基于jdbc实现,直接分析数据库结构。

2、生成工具必须能够生成对应数据库表的对象的model类、action类、service类。生成后无需修改就能达到ss中helloword的效果。

3、生成工具必须能够自动识别主键,以便于在对应的get方法前加上@ID等标记

4、生成工具也必须能够自动识别非主键列,并且自动产生对应的方法和Annotation标记。例如如果一个字段为login_name,对应的类的属性应该为loginName,而对应的标记为@column (name="login_name")

5、对于生成的页面,最好能够直接生成对应的页面上列表的表头。这里我一个想法就是利用数据库中列的备注属性来实现。希望达到的效果就是userList.jsp这样的页面,在生成代码的时候,列表的表头上,生成显示的是对应的中文,而不是英文列名(当然,如果列注释是英文,就显示英文)。

6、最好是能基于eclipse的插件实现图形界面,这样操作起来更加简单。

7、剩下的就比较难了,例如自动产生many-to-one和one-to-many的设置,现在还没很好的思路,需要仔细考虑考虑再说了。

 

 

susu兄弟,上述观点,欢迎拍转,也许对你有用。希望看到你的最新版本。

 

 


用户名时间积分理由
SpringSide团队 2007-4-9 19:44 积分 +5


© 2005-2006 SpringSide.org.cn, Host on RedSaga.com, Powered by Discuz 5.0   Get SpringSide at SourceForge.net. Fast, secure and Free Open Source software downloads

粤ICP备08025786号