【问题标题】:{play 2.3}Java generic action (without generic static method){play 2.3}Java泛型动作(无泛型静态方法)
【发布时间】:2014-07-18 13:39:35
【问题描述】:

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

如果只是类型改变,是时候调用泛型函数了!问题是:没有办法在 java 中创建通用静态函数。所以行动不能是通用的。

here 描述的解决方案不再有效。 这个特性非常重要,它一定是在某个地方实现的。我已经想过的一个想法:

动作组合

动作组合是一种在另一个函数之前调用函数的方法。由于动作不是静态的,理论上可以创建通用动作。

问题一:如何通过注解传递泛型类型?

问题 2:我已经使用动作组合来确保用户已登录。由于我的登录动作是类作用域,而通用 crud 动作将是方法作用域,所以 crud 动作将在登录动作之前处理,并且没有方法来扭转它。

结论

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

有没有办法实现可以重复使用和覆盖尽可能多次的通用动作(即:静态)。

【问题讨论】:

    标签: java generics playframework-2.0


    【解决方案1】:

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

    这个插件的优点:

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

    • 让有一个 MyController 类成为可能,它的动作不是静态的,可以使用泛型,被继承和覆盖!这解决了问题中解释的问题!

    • 已创建用于 crud 数据库通信的引擎。尽管我需要对其进行调整以更好地管理错误,但这仍然是一件有用的事情。

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

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

    这个插件的缺点:

    • 尚不兼容 play 2.3。我的一个朋友提出了升级请求,所以我使用的是本地发布的 2.3 兼容版本,但尚未正式发布。
    • 小社区。很少的文档,没有邮件组,没有论坛,发布问题的唯一地方是 github 问题部分。
    • BUG还是比较少的,这个时候插件作者也不是很活跃(不过可能还在放假)。

    总之,我用过它并且我对它很满意,所以试一试吧!

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 2011-12-20
      • 1970-01-01
      • 2014-04-17
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多