java中after什么意思_java – Play控制器的@After和@Finally注释之间的区别是什么

如果你写一个小的测试工具,你会看到它是如何工作的,但它的关键是这个

>在执行操作之前调用@Before

> @After在控制器完成执行后调用,但在输出呈现给浏览器之前调用

>结果发布到浏览器后调用@Finally.

因此,在大多数情况下,@ After和@Finally将以相同的方式为您工作,但根据您的特定用例,确实会略有不同.但是,它不应该对性能产生任何影响.

我写的测试工具证明了这一点,如下所示

public class Application extends Controller {

@Before

static void log0() {Logger.info("before: "+ response.out.size());}

@After

static void log1() {Logger.info("After: "+ response.out.size());}

@Finally

static void log2() {Logger.info("finally: "+ response.out.size());}

public static void index() {

Logger.info("in index action");

render();

}

}

我得到的输出如下

20:51:37,741 INFO ~ before: 0

20:51:37,742 INFO ~ in index action

20:51:38,083 INFO ~ After: 0

20:51:38,106 INFO ~ finally: 706

这清楚地显示了处理的顺序,以及输出到HTTP Response对象的数据.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值