【问题标题】:How to use spring service interfaces and implementations in gwt by coding less?如何通过少编码在gwt中使用spring服务接口和实现?
【发布时间】:2011-10-09 00:07:17
【问题描述】:

我有一个包含两个模块的 maven 项目;一个弹簧模块和一个用于 gwt 模块。 gwt 模块依赖于 spring 模块。我将 XService 接口和 XServiceImpl 实现作为 Spring bean 注释为 @Service("myXServiceImpl")。

我想从 gwt 客户端调用 myXServiceImpl bean 的方法。为此,我编写了适当的 gwt 类; XGWTService、XGWTServiceAsync、XGWTServiceImpl 和 XGWTServiceImpl 使用 @Autowired 的 XService(我使用 spring4gwt 和 XGWTServiceImpl 是注解为 @Service("myXGWTServiceImpl") 的 Spring bean)

实际上,我想要一个实用的解决方案,就像只定义用 @RemoteServiceRelativePath("spring4gwt/myXServiceImpl") 注释的 XGWTServiceAsync 一样简单

我想知道是否有一种简单的方法来调用我的 spring bean 而无需编写额外的 3 个类(XGWTService、XGWTServiceAsync、XGWTServiceImpl)?

提前致谢

【问题讨论】:

    标签: java spring gwt maven


    【解决方案1】:

    将 XService 接口和它使用的所有类放在一个单独的包中。使 XService 扩展 RemoteService。然后,您可以定义一个包含这些类的 GWT 模块。将源代码与 jar 文件一起打包。在你的主 GWT 模块中继承 GWT 模块,并且只实现 XServiceAsync 接口。

    您还可以取消手动实现 XServiceAsync - maven GWT 插件可以选择从接口生成 Async 版本。

    唯一尴尬的是让 XService 实现 GWT 的 RemoteService 接口,因此不得不让你的服务实现依赖于 GWT jar。但由于它不妨碍我们可以忍受的实施方式。

    另一种选择是只创建一个扩展 XService 和 RemoteService 的 XGwtService 接口 - 不向其中添加任何其他方法。在服务器上,只需 XServiceImpl 就足够了。

    【讨论】:

    • 感谢 gkamal 的回答,但我认为这些建议并没有带来更简单的解决方案,因为实现我的接口的接口和 spring bean 不需要依赖 gwt 模块。实际上,我想要一个实用的解决方案,就像只定义用 @RemoteServiceRelativePath("spring4gwt/myXServiceImpl") 注释的 XGWTServiceAsync 一样简单。
    猜你喜欢
    • 2022-11-18
    • 2016-09-29
    • 1970-01-01
    • 2017-10-28
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多