0
我已经创建了一个名为InterceptionLogger.java
的Controller
,它将只包含Interception
方法。另一个Controller
即Application
将包含所有action
方法并使用Interception
使用@With
注释。使用一个单独的控制器进行截取
这是Application.java
控制器:
@With(InterceptionLogger.class)
public class Application extends Controller {
public static void index() {
System.out.println("Inside index!!!");
render();
}
public static void welcome(String txtName){
render(txtName);
}
如果InterceptionLogger.java
控制器是这样的:
public class InterceptionLogger extends Controller {
@Before
static void logBefore(){
System.out.println("Inside \"logBefore\" method of App Controller");
}
@After
static void logAfter(){
System.out.println("Inside \"logAfter\" method of App Controller");
}
}
当我运行应用程序时,输出是:
Inside "logBefore" method of App Controller
Inside index!!!
Inside "logAfter" method of App Controller
好,如预期。
但如果我改变InterceptionLogger.java
这样:
public class InterceptionLogger extends Controller {
@Before(only="welcome")
static void logBefore(){
System.out.println("Inside \"logBefore\" method of App Controller");
}
@After(only="index")
static void logAfter(){
System.out.println("Inside \"logAfter\" method of App Controller");
}
}
然后我得到这个输出为index
:
Inside index!!!
在这种情况下,为什么没有得到打印的声明Inside "logAfter" method of App Controller
在控制台中?
如何使它工作?