我想实现下面这样一个功能,但是一时没有思路:当我一个用户登录进系统以后,我想记录这个当前用户在系统中做的所有操作,如删除资源,登录,修改权限等,(不要说在每个地方都写一段语句插入日志哦,那样维护太麻烦啦)
解决方案 »
- 在rmi连接中客户端指定一个ip地址,但程序执行中却转换成另一个地址
- hibernate的 merge()的用法
- EJB3.0 jTA问题
- 关于struts2中迭代标签<s:iterator>的使用问题
- mysql 问题
- 字符加密与字符解密的问题,高手指教!!
- 这样情况如何IoC
- 我编译tomcat自带的servlet范例java文件,为何老提示import javax.servlet.*;中的javax.servlet包不存在?
- ejb create问题,请指教!!困惑中
- 100分相送:我的entity ejb怎么不能访问数据库????来者送分!!!!!!!!!
- struts2 默认类型转换类在哪里!
- 登录
aop如何实现
package com.hundsun.fund.website.webapp.log;import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;public class UserOprationLog { protected Logger logger = Logger.getLogger("WEBAPP");
public void userLog(ProceedingJoinPoint pjp){
Object obj[] = pjp.getArgs();
String paremeters = "";
for(int i = 0; i < obj.length; i++){
paremeters += obj[i].toString() + ",";
}
if("addUser".equals(pjp.getSignature().getName())){
logger.info("添加用户:" + pjp.getSignature().getName() + "(" +paremeters + ")");
}
//System.out.println("user action");
}
}applicationContext.xml:
<!-- 配置日志AOP begin -->
<bean id="userLog" class="com.hundsun.fund.website.webapp.log.UserOprationLog" />
<bean id="systemLog" class="com.hundsun.fund.website.webapp.log.SysExceptionLog" />
<aop:config proxy-target-class="true">
<!-- 用户操作日志切面 -->
<aop:aspect ref="userLog" id="userLogAspect">
<aop:pointcut id="userLogPointcut" expression="execution(* com.hundsun.fund.website.webapp.dao.user.*.*(..))"/>
<aop:after-returning pointcut-ref="userLogPointcut" method="userLog" />
</aop:aspect>
<!-- 系统异常日志切面 -->
<aop:aspect ref="systemLog" id="systemLogAspect">
<aop:pointcut id="systemLogPointcut" expression="execution(* com.hundsun.fund.website.webapp.dao.*.*.*(..))"/>
<aop:after-throwing pointcut-ref="systemLogPointcut" method="systemLog" throwing="e"/>
</aop:aspect>
</aop:config>
<!-- 配置日志AOP end -->参考下这个吧