spring aop 日志记录
需要日志记录,将所有的web操作记录到数据库中,使用aop来记录日志,当然是一个好的选择,spring中集成aop记录日志的方式有多种(aop的配置方式有多种,注解、xml配置),这里只说一个xml配置的例子。
1、编写日志记录类
2、配置aop
1、编写日志记录类
@SuppressWarnings("unchecked")
public class LogService {
public void logAll(JoinPoint jp){
System.out.println("in LogService, method logAll invoked.");
System.out.println("========================");
StringBuilder sb = new StringBuilder();
sb.append("method:" + jp.getSignature().getName());
HttpServletRequest request = ServletActionContext.getRequest();
Iterator<Entry<String, Object>> iter = request.getParameterMap().entrySet().iterator();
boolean isFirst = true;
sb.append(" paras:");
while(iter.hasNext()){
Entry<String, Object> entry = iter.next();
if(isFirst){
isFirst = false;
}else{
sb.append("#");
}
sb.append(entry.getKey() + "=");
Object[] allValue = (Object[]) entry.getValue();
for(int i = 0; i < allValue.length; i++){
if(i != 0){
sb.append(",");
}
sb.append(allValue[i].toString());
}
}
System.out.println(sb.toString());
System.out.println("========================");
}
}
2、配置aop
在applicationContext.xml中配置
<aop:config>
<aop:aspect id="myAspect" ref="logService">
<aop:pointcut expression="execution(* com.cjnetwork.cms.action.*.*(..))" id="logPointCut"/>
<aop:before method="logAll" pointcut-ref="logPointCut"/>
</aop:aspect>
</aop:config>
<bean id="logService" class="com.cjnetwork.cms.service.LogService"></bean>
<aop:config proxy-target-class="true" />
基本配置就是这样的,这里需要配置<aop:config proxy-target-class="true" /> ,表示强制使用cglib代理,而不是java本身的代理,这个很重要,如果使用java自带的代理,则会抛出异常,提示说代理类无法转换为我们自己的类,这是因为默认的该属性为false,这种代理方式,需要实现接口的方式,代理返回的类可以转换为对应的接口类,但无法直接转换为类的实现,这种方式不推荐。
分享到:
相关推荐
本资源用来展示如何使用 spring aop 进行日志记录,例子里面通过aop的配置,把产生的日志存放到当前项目的根目录下,而且对方法执行过程中的参数进行了记录,对于aop如何记录日志不清楚的同学可以看看。
4、想看spring aop 注解实现记录系统日志并入库等 二、能学到什么 1、收获可用源码 2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑实现 (需要知道原理的请看spring aop源码,此处不做赘述) 3、...
swagger和spring Aop日志结合 ,swagger和spring Aop日志结合 ,swagger和spring Aop日志结合 ,
结合logback和切面对参数名和参数值,方法运行时间,方法返回值记录日志,pom中需要添加ogback和切面依赖。
内容概要: 充分利用SpringBoot AOP设计的精妙日志记录方案,实现高效的日志处理策略。此外,我们还支持通过配置文件(yml)精准控制日志开关,并定制AOP切点表达式(Pointcut)。 适用人群: 针对资深Java开发者、...
Spring之AOP在鉴权和日志记录中的应用
使用SpringAOP完成日志记录功能的实例
Flex整合Spring实现aop日志管理 实现记录操作的日志
利用自定义注解和spring aop和java反射机制生成用户能够读懂的日志记录。如:用户张三在2013年9月27日17:00执行了用户管理模块的用户删除功能参数为(编号:123456)各位可根据需要写入数据库或者保存到文件。
该压缩包中包含了一个myeclipse6.5下开发的JAVA基于spring实现的日志记载例子,该例子提供了接受切点参数,解析切点返回值,并且都打印出来了,有详细的文档介绍。
AOP技术则是将日志记录和安全检测代码封装为方法,在处理业务逻辑之前分别调用已经封装好的方法即可,有效解决重复性代码的问题,并为程序开发、调试带来极大方便
2.需要记录异常日志时没有记录,或者异常在不同的地方重复记录,使得排错调试不方便 3.处理日志时,需要在每一个try-catch块包含一些处理代码,有时候异常处理的代码比正常执行代码还多,污染正常执行代码。 4.同样...
使用Spring的AOP技术,实现日志记录功能。记录如下信息: 在哪个时间访问了哪个方法,方法传入了哪些参数
用spring AOP做的最简单的日志记录小例子,特别简单,可直接运行。
元注解方式结合AOP,灵活记录操作日志 能够记录详细错误日志为运维提供支持 日志记录尽可能减少性能影响
spring.net结合三层AOP异常日志记录功能
1.简单的AOP日志实现-某方法之前的前后记录日志; 2.简单的AOP日志实现-需要记录方法的运行时间; 3.简单的AOP日志实现-增加检查订单功能;
struts2+spring2.5用AOP记录操作日志,带自定义参数aop的例子
Spring mvc mybatis plus 实现AOP 切面日志系统,带有数据库。可以自行拓展
NULL 博文链接:https://conkeyn.iteye.com/blog/2354644