@With Java中的注释

时间:2017-01-28 07:34:17

标签: java playframework annotations playframework-2.5

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

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

这是什么意思?在上面的例子中,注释与没有注释之间有什么区别?

1 个答案:

答案 0 :(得分:0)

很明显@With用于撰写动作:

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);
    }
}

您可以使用play.mvc.Action注释将操作方法​​提供的代码与另一个@With进行编写:

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

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