Java 生成GWT覆盖类型
是否有任何工具/脚本/方法可以从JavaBean类自动生成覆盖类型?例如,通过在字段/getter上放置注释,可能使用标准的JAXB注释,如@XmlElementJava 生成GWT覆盖类型,java,gwt,jaxb,code-generation,Java,Gwt,Jaxb,Code Generation,是否有任何工具/脚本/方法可以从JavaBean类自动生成覆盖类型?例如,通过在字段/getter上放置注释,可能使用标准的JAXB注释,如@XmlElement 这里有一个重复的主题:,但问题还没有得到回答。唯一的答案是使用Protostuff,这并不是我想要的。为什么要覆盖类型?是否要使用JSON(P)而不是RPC? 我在RPC层中使用JAXB注释对象,这样我就不需要2个版本的对象。RPC是缓慢和难以加载测试,所以在这种情况下,我可以理解你想去覆盖的方式。我在一些地方做了这件事,在那里它产生
这里有一个重复的主题:,但问题还没有得到回答。唯一的答案是使用Protostuff,这并不是我想要的。为什么要覆盖类型?是否要使用JSON(P)而不是RPC?
我在RPC层中使用JAXB注释对象,这样我就不需要2个版本的对象。RPC是缓慢和难以加载测试,所以在这种情况下,我可以理解你想去覆盖的方式。我在一些地方做了这件事,在那里它产生了巨大的影响。因为覆盖类型文档是最新的,所以不可能由生成器生成覆盖类型实现 它说: GWT1.5中覆盖类型的实现不支持 定义新JSO子类型的生成器(由于需要重新定义或 否则,在后续编译期间扩展JavaScriptObject$)。 这项限制仍然存在
我终于找到了一种方法来实现这一点,尽管它只是半自动化的。在Eclipse中,您可以创建如下代码模板(窗口/首选项/Java/编辑器/模板):
public final native ${type:var} get${nameCamelCase:var}() /*-{
return this.${name:var};
}-*/;
public final native void set${nameCamelCase}(${type} ${name}) /*-{
this.${name} = ${name};
}-*/;
给它起个名字,比如“get”。
然后在任何GWT编辑器中,您都应该键入“get”并按Ctrl+Space,然后输入。覆盖类型的原因是什么?您是否使用JSON(P)来调用服务层?因为:1)RPC不可能自动测试2)服务器依赖于GWT和RPC 3)在服务器上,我们有Spring MVC来实现所有功能:同步或异步。对于SpringMVC来说,这并不重要。您可以在不接触服务器的情况下从同步更改为异步,然后再返回。有了RPC,你只能梦想得到它。我们可以在整个应用程序中应用相同的过滤器,无论是否适用于GWT 4)您可以在Firebug等简单嗅探器中查看所有请求数据5)您可以将JSON数据保留在页面上,以便随后从组件中读取(对Spring表单有用),或者使用Ajaxintersting idea返回它,但我的意思不是通过GWT生成器生成,而是在通常的Java构建过程中使用Eclipse/Maven/Ant/etc中的一些生成器