0

Tapestry5我想知道,在某些动作中描述是否有任何方便和适当的方式AppModule,应该在方法运行之前调用? bind()

当然,可以bind()在方法块顶部的方法中包含此类操作。但似乎,这一定是其他的可能性。

顺便说一句,@Startup这不是合格的方式,因为在我的情况下它使用已经启动的服务,但我需要一些操作才能绑定服务。

4

3 回答 3

1

有时我发现自己在模块类中使用了一个未命名的静态块——主要用于初始化我的 Tapestry 服务所依赖的遗留服务。就像是:

public final class MyModule {

    static {
        // early set-up here
    }

    public static void bind(ServiceBinder binder) {
        // binding here
    }
}

这似乎稍微提高了模块代码的可读性,但同时为单元测试设置可能有些困难。

于 2013-02-13T12:05:34.640 回答
1

在 Tawus 的回答之外;不,除了静态代码块(这是标准 Java,与 Tapestry 无关)之外,您无能为力。

于 2013-05-31T18:35:38.357 回答
0

如果它是 Tapestry Web 应用程序,您可以扩展TapestryFilter并在那里进行初始化步骤。查看 TapestryFilter 的源代码以获得灵感。另请参阅TapestryAppInitializer

于 2013-01-30T13:54:23.927 回答