{play 2.3} Java泛型动作(没有通用的静态方法)

时间:2014-07-18 13:39:35

标签: java generics playframework-2.0

我有很多动作(即:在扩展Controller的类中返回Result类型的静态方法),这在我的应用程序中几乎相同。这是关于粗暴行为。我有bdd表,对于每个表,我实现了以下操作:list,new,update ...唯一改变的是与表关联的Model类的类型。

如果仅更改类型,则需要调用泛型函数!问题是:没有办法在java中创建通用的静态函数。所以行动不能是通用的。

描述here的解决方案不再有效。 此功能非常重要,必须在某个地方实施。我已经想过的一个想法:

行动作文

动作合成是一种在另一个之前调用函数的方法。由于动作不是静态的,因此创建通用动作是非常可能的。

问题1:如何通过注释传递泛型?

问题2:我已经使用了动作组合来确保用户已登录。由于我的登录操作是类范围而普通的crud操作将是方法范围,因此将在登录操作之前处理crud操作并且没有改变它的方法。

结论

这非常重要,因为我将有20多个表,我想尽可能少地复制过去。

是否有办法实现可以重复使用的通用操作(即:静态),并尽可能多地覆盖。

1 个答案:

答案 0 :(得分:0)

我找到的解决方案是使用play2-crud插件进行播放。你可以找到它here

这个插件的专业人士:

  • 路线系统。将自动生成视图和休息(ajax)的创建/更新/删除/显示的所有路由。

  • 可以拥有一个MyController类,其中action不是静态的,可以使用泛型,被删除和覆盖!这解决了问题中解释的问题!

  • 已经创建了crud数据库通信的引擎。虽然我需要调整它以获得更好的错误管理,但它仍然是一个有用的东西。

  • 使用dao(数据访问对象),可以在将对象保存到数据库之前轻松添加检查。

  • 自动为crud froms生成表单。如果您想进行后端数据库管理,则非常有用,但您必须为用户重新绘制所有内容。

此插件的缺点:

  • 与游戏2.3不兼容。我的一个朋友提出了升级请求,因此我使用的是2.3兼容版本在本地推出,但它尚未正式发布。
  • 小社区。很少有文档,没有邮件组,没有论坛,唯一发布问题的地方是github问题部分。
  • 还有很少的错误,插件的作者此时不是很活跃(但也许他还在假期)。

总结我使用它并且我很满意,所以试一试!