【发布时间】:2012-02-20 22:12:07
【问题描述】:
我不太明白@with 注释的作用。
在 Play framework 站点中,它是这样写的:
我们可以使用@With注解来注解控制器 播放调用相应的拦截器
它和继承一样吗?它会调用给定类参数的@before 吗?它到底是做什么的?
【问题讨论】:
标签: syntax annotations playframework
我不太明白@with 注释的作用。
在 Play framework 站点中,它是这样写的:
我们可以使用@With注解来注解控制器 播放调用相应的拦截器
它和继承一样吗?它会调用给定类参数的@before 吗?它到底是做什么的?
【问题讨论】:
标签: syntax annotations playframework
我能描述它的最好方式是,它在你的控制器级别为你的拦截器提供了多重继承。拦截器是@Before、@After 注解。
因此你可以
@Before注解@Before为共享操作注入静态数据
然后您可以定义一个或多个控制器来包含您的所有操作,并使用@With 注释来使用上述两个控制器。这意味着您可以干净地分离代码,而不必依赖继承来执行@Before 注释。
【讨论】:
假设你有 2 个控制器:
A 有@Before 或其他控制器动作注入注解,B 得到注释 @With(A.class)
所有在A 中定义的注入动作将在调用B 的动作方法时生效。
这是一种继承。但是,通过继承,您最多可以扩展一个类。不过你可以@With({A.class, Z.class, ...})
【讨论】: