【发布时间】:2015-06-11 07:27:27
【问题描述】:
我有一些通用代码必须注入到任何 servlet 的service 方法中。
因此,我构建了一个母 servlet SuperController:
public class SuperController extends HttpServlet{
private HttpServletRequest lastRequest ;
//........
public void service(HttpServletRequest req,HttpServletResponse res){
setLastRequest(req); // example of common code
}
}
然后,所有其他 servlet 都从此 servlet 扩展。
public GalleryServlet extends SuperController{
public void service(HttpServletRequest req,HttpServletResponse res){
//instead of running here the common code , use AOP.
// Then , the other code
}
}
我想使用 AOP 执行公共代码(即:setLastRequest(req)),因为 super.service(req,res) 引发了 ERROR 405 。
com.ControllerAspect.java
@Before("* com.SuperController+.service(..)")
public void doStuffBeforeService(JoinPoint joinPoint) {
// do stuff here
}
如何使用 Spring AOP:
这个切入点
* com.SuperController+.service(..)是否包含所有类中的service方法,继承自com.SuperController。如何访问
doStuffBeforeService中服务方法的参数(req & res)?
【问题讨论】:
标签: servlets spring-aop