首先我们需要定义一个类,实现 MethodInterceptor 接口
public class AuthorityExpenseAdminInterceptor implements MethodInterceptor {
// 可以注入一些自己用到的类
@Inject
private ProjectBudgetDao projectBudgetDao;
@Inject
private ExpenseDetailedDao expenseDetailedDao;
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
具体的拦截逻辑
return invocation.proceed(); 放行
}
}
第二步, 定义一个注解 annotation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AuthorityExpenseAdmin {
}
第三步
在配置文件中绑定注解;
AuthorityExpenseAdminInterceptor authorityExpenseAdmin = new AuthorityExpenseAdminInterceptor();
// 注入
package com.google.inject;
requestInjection(addExpenseDetailed);
//绑定拦截器
package com.google.inject;
package com.google.inject.matcher
Matchers.annotatedWith //指定注解
bindInterceptor(Matchers.any(),
Matchers.annotatedWith(AuthorityExpenseAdmin.class),
authorityExpenseAdmin);
现在就可以使用了