做业务日志,通过AOP对Service层的一些操作进行拦截,并把相关操作写入数据库的日志表中
但在此日志表中,有个"操作用户"的字段
@Aspect
public class MyInterceptor {
@Before("execution(* com.aa.*.service.impl.*.*(..))")
public void doBefore(){
//...
}
但在这里,怎么才能得到当前的用户这个对象呢?
如果是用户的话可以直接把UID放在SESSION里先搞清楚你要操作的User是从哪里得出来的,然后再想办法存在某个容器当中,在serivce中直接去调用那个容器,这不就行了吗。WebUtils里面应该有方法可以取到 我以前是这么处理的
1、在web.xml中增加一个Filter;
2、在该Filter中将HttpSession置入一个ThreadLocal的对象中;
3、在拦截器中get这个ThreadLocal对象;
如果取不到,说明这个方法不直接与用户相关。
所以你记录用户也没有啥意义,所以建议你就空着这个字段就好了DOBEFORE你要記錄什麽?
而且誰說攔截不到SESSION和REQUEST?