如何扩展playframework?

如何扩展playframework?,playframework,playframework-1.x,Playframework,Playframework 1.x,有时有必要扩展一个框架。有时有必要连接到请求/响应生命周期中,例如参数绑定或编写安全模块。 如何在playframework 1.x中实现这一点?有两种方法可以扩展Play1.x。首先,您可以编写自己的模块。详细描述了这一点。如果您希望提供诸如iText之类的库或提供特殊的身份验证机制,这将非常有用 第二种方法是编写PlayPlugin。这通常是在模块中完成的,但这不是一个必要条件。编写PlayPlugin需要两个步骤: 编写一个类来扩展类PlayPlugin,并覆盖它的一些属性,例如名为myP

有时有必要扩展一个框架。有时有必要连接到请求/响应生命周期中,例如参数绑定或编写安全模块。
如何在playframework 1.x中实现这一点?

有两种方法可以扩展Play1.x。首先,您可以编写自己的模块。详细描述了这一点。如果您希望提供诸如iText之类的库或提供特殊的身份验证机制,这将非常有用

第二种方法是编写
PlayPlugin
。这通常是在模块中完成的,但这不是一个必要条件。编写
PlayPlugin
需要两个步骤:

  • 编写一个类来扩展类
    PlayPlugin
    ,并覆盖它的一些属性,例如名为
    myPackage.MyPlugin
  • 注册你的插件。这是通过创建一个名为
    play.plugins
    的文件并将其放入类路径来完成的。该文件必须包含一行,如
    1003:myPackage.MyPlugin
  • 这个数字定义了插件的调用顺序。我建议使用ids>1000。如果希望在框架插件之前加载,请查看(ID自1.1.1起有效)

    就这样。要了解如何使用插件,请参阅。您可以连接到:

    • 请求/响应周期
    • 绑定过程
    • 应用程序启动/停止
    • 类加载

    不幸的是,javadoc文档很少,但是请不要犹豫,看看playframework本身的代码。它很容易理解,给你好的想法

    回答得很好,尼尔斯。。。我已经尝试过你的方法了,但是我的插件好像加载了两次。我的日志是:14:00:51454 INFO~--在调用控制器之前。MyPlugin@62d6a33f14:00:51454信息~--调用控制器之前。MyPlugin@7977afca:具有不同ID的两个对象如果使用eclipse,则文件
    play.plugins
    将复制到classes文件夹中。如果从eclipse启动play,play将两次找到该文件并两次加载插件。将“play.plugins”文件放在“conf”文件夹中可以解决此问题。
    play.plugins
    文件仍然需要吗?