Playframework 2.0 游戏1.2中的“之前”和“之后”的游戏2.0等价物是什么?

Playframework 2.0 游戏1.2中的“之前”和“之后”的游戏2.0等价物是什么?,playframework-2.0,Playframework 2.0,当我使用Play1.2时,我能够用@Before或@After(以及其他…)注释任何控制器内的一些方法,以便在该控制器内的每个请求之前或之后执行一个方法 在Play 2.0中我如何做到这一点 我读了一些关于全局对象的内容,但它似乎不是我想要的。而且,对于我想做的事情来说,动作组合似乎太复杂了。我希望看到更简单的东西 有什么想法吗?不幸的是,您必须使用@之前的,而@之后的@没有等价物 对于@After,我会在end操作的末尾编写自己的After方法;大概是这样的: public static Re

当我使用Play1.2时,我能够用@Before或@After(以及其他…)注释任何控制器内的一些方法,以便在该控制器内的每个请求之前或之后执行一个方法

在Play 2.0中我如何做到这一点

我读了一些关于全局对象的内容,但它似乎不是我想要的。而且,对于我想做的事情来说,动作组合似乎太复杂了。我希望看到更简单的东西


有什么想法吗?

不幸的是,您必须使用
@之前的
,而
@之后的
@没有等价物

对于
@After
,我会在end操作的末尾编写自己的
After
方法;大概是这样的:

public static Result index() {
    ....
    Result result = ...;
    return after(result);
}

protected static Result after(Result result) {
    ...
    Result afterResult = ...,
    return afterResult

}
公共类日志记录{
@With(LogAction.class)
@目标({ElementType.TYPE,ElementType.METHOD})
@保留(RetentionPolicy.RUNTIME)
public@interface日志{
}
公共静态类LogAction扩展了操作{
在(上下文ctx){
System.out.println(“调用操作之前”);
} 
在(上下文ctx){
System.out.println(“调用操作后”);
} 
public F.Promise调用(Http.Context上下文)抛出可丢弃的{
前(上下文);
承诺结果=委托.调用(上下文);
在(上下文)之后;
返回结果;
}
}
}
在控制器中使用@Logs进行注释

public class Logging {

    @With(LogAction.class)
    @Target({ElementType.TYPE, ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Logs {

    }

    public static class LogAction extends Action<Logs> {

        private void before(Context ctx) { 
            System.out.println("Before action invoked");
        } 

        private void after(Context ctx) { 
            System.out.println("After action invoked");
        } 

        public F.Promise<Result> call(Http.Context context) throws Throwable {
            before(context); 
            Promise<Result> result = delegate.call(context);
            after(context);
            return result; 
        }
    }

}