spring 拦截器使用的例子
转自:http://blog.csdn.net/lemonfamily/article/details/1498246
spring 拦截器是spring AOP体系下的一个重要的子功能。它类似于web中的filter,但又比filter灵活,强大得多。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链。(见Spring Framework 开发参考手册第6章),拦截功能是spring AOP实现面向切面编程的一个亮点,我们这里通过一个示例来看看如何使用拦截功能的:
这个例子是通过拦截指定的bean,在外部调用他们其中的方法被之前将触发拦截器。
首先,编写一个个拦截器:SpringAOPInterceptor.java
public class SpringAOPInterceptor implements MethodBeforeAdvice {public void before(Method method, Object[] args, Object target)throws Throwable {System.out.println("The Interceptor method name is: "+ method.getDeclaringClass().getName() + "."+ method.getName());String value = "";for(int i=0;ilength;i++){value += args[i].toString()+"&";}System.out.println( "The method parames is:" +value);System.out.println( "The target class is:" + target.getClass().getName());}<bean name="logger" > <value>userDAO</value><!-- 在这里可以声明多个需要拦截的bean --></property><property name= "interceptorNames" > <list> <value>logger</value><!-- 同样,在这里可以声明多个拦截器,注意次序前后 --> </list></property></bean>