java - Play Java 中的 @With 注解

标签 java playframework annotations playframework-2.5

我不明白 Play Java 中 @With 注释的含义。 我们有the same question在 StackOverflow 中似乎是 Play1,而不是 Play2。 而在Play最新版本的文档中,我看到了这个例子。

@With(VerboseAction.class)
public Result verboseIndex() {
    return ok("It works!"); }

这是什么意思?在上面的例子中,带注解和不带注解有什么区别?

最佳答案

很明显@With用于组合Actions:

public class VerboseAction extends play.mvc.Action.Simple {
    public CompletionStage<Result> call(Http.Context ctx) {
        Logger.info("Calling action for {}", ctx);
        return delegate.call(ctx);
    }
}

您可以使用 @With 注释将操作方法​​提供的代码与另一个 play.mvc.Action 组合起来:

@With(VerboseAction.class)
public Result verboseIndex() {
    return ok("It works!");
}

因此,当调用verboseIndex时,首先会调用VerboseActioncall方法。因此,在此示例中,首先 Logger.info 将写入一些信息消息,然后稍后将完成 ok 响应。

关于java - Play Java 中的 @With 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907433/

相关文章:

java - 是否可以使用Java更改不同操作系统的桌面背景?

scala - 如何使用 Scala Guice 绑定(bind)一个扩展具有 monadic 类型参数的 Trait 的类?

java - 如何在Java中的方法参数中只允许使用某些注释注释的类?

java - 如何获取成员变量的注释?

java - Spring rest controller @ExceptionHandler 返回 xml 内容和 json 错误

java - 装饰模式和调用 super 方法一样吗?

java - 读取 Spring JPA Repository 中未提交的数据

java - 玩!框架 2.2.0 : impossible to debug in Eclipse

mysql - 无法删除多对多关联中的子行

c# - 混合授权注解