我不太明白@with注释是做什么的。
在Play框架网站中,写道:
我们可以使用@With注释来指示控制器 播放以调用相应的拦截器
和继承一样吗?它会调用给定类参数的@before吗?究竟是做什么的?
答案 0 :(得分:7)
我能描述它的最好方法是,它可以为您的拦截器提供控制器级别的多重继承。拦截器是@Before
,@After
注释。
你可以
@Before
注释@Before
然后,您可以定义包含所有操作的控制器,并使用@With
注释来使用上述两个控制器。这意味着您可以干净地分离代码,而不必依赖继承来执行@Before
注释。
答案 1 :(得分:6)
假设您有2个控制器:
A
有@Before
或其他控制器操作注入注释,B
使用@With(A.class)
A
中定义的所有注入操作在调用B
的操作方法时都会生效。
这是一种继承。但是对于继承,您最多可以扩展一个类。但你可以做@With({A.class, Z.class, ...})