本帖最后由 冯海霞 于 2012-10-30 07:10 编辑
Spring的切面和Struts2甚至是Servlet的拦截器有毛区别??他们都是在目标方法的调用前后,插入我们需要执行的代码块。都是可拔式的设计,需要时写好拦截器然后配置一下。不需要时只需注释相关配置就行了。在书上看到过这样一句话,Struts2的拦截器其实就是一种面向切面的实现,那么是不是说其实他们就是一样的,思想是一样的,完成的功能也是一样的。只是说由于历史原因,在Servlet的拦截器甚至是Struts2拦截器这种概念出现时,还没有AOP面向切面这种说法。当然String的AOP应用更广,Struts2的拦截器只针对Struts2的action,可在用户请求一个action前解析请求参数,类型转换,甚至是权限控制。而当我们的Controller到了Servers层后调用的方法,需要在前后做一些处理时,AOP就更方便了。当然这里并不是只是在谈论Struts2的拦截器和Spring的AOP的异同,而是想问拦截器(不管哪个框架的)和Spring的面向切面的思想的关联!!!!! |