这段时间在用springmvc+mybatis做项目,中途用到spring aop拦截 具体配置也贴一下,这是在spring-Mvc.xml配置文件中的,注意必须在spring-MVC中加入
<aop:config proxy-target-class="true">
<aop:aspect id="concurrentOperationRetry" ref="interceptor">
<aop:pointcut id="idempotentOperation"
expression="execution(* com.csuft.controller..*.*(..))" />
<aop:around pointcut-ref="idempotentOperation" method="doSomeThingAround" />
</aop:aspect>
</aop:config>
<bean id="interceptor" class="com.csuft.privilege.Interceptor">
</bean>
<context:component-scan base-package="com.csuft" />这句话在spring-MVC.xml中写一次,没必要到spring.xml中写了,据网上资料,写上会多实例化一次
下面是拦截器的代码
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.reflect.MethodSignature;
import com.csuft.util.WebTool;
public class Interceptor {
public Object doSomeThingAround(ProceedingJoinPoint pjp) throws Throwable {
HttpServletRequest request = null;
/*得到拦截的方法*/
Method m = ((MethodSignature) pjp.getSignature()).getMethod();
// 获得参数
Object[] args = pjp.getArgs();
/**
*权限验证
*/
System.out.println("=====================================拦截器==========================");
Object result = pjp.proceed();
return result;
}
}
注意的是:拦截器的配置要放在spirng-mvc中,在本次拦截中我放在spring.xml中,就是不起作用,但是通过juint测试却可以执行拦截器,当然还不知道什么原因,先贴这吧