spring aop 切面添加日志

本文介绍了一个使用Spring AOP实现的日志记录程序。该程序通过定义切面类`LoggingAspect`,在业务方法执行前后自动记录日志,包括方法调用开始时间、参数、结束时间和返回结果等。此外,还介绍了如何配置Spring来应用这些切面。
摘要由CSDN通过智能技术生成

这是一个非常简单的spring aop切面添加日志的程序,下面来看一下这个程序

1、程序使用jar包

2、切面类LoggingAspect.java

package com.cailei.aop.aspect;

import java.util.Arrays;

import org.aspectj.lang.JoinPoint;

public class LoggingAspect {

	public void beforeMethod(JoinPoint joinPoint) {

		String methodName = joinPoint.getSignature().getName();
		Object[] args = joinPoint.getArgs();
		long times = System.currentTimeMillis();
		System.out.println("start execute time:" + times + "," + methodName + " start execute,args:" + Arrays.toString(args));
	}

	public void afterMethod(JoinPoint joinPoint) {
		String methodName = joinPoint.getSignature().getName();
		long times = System.currentTimeMillis();
		System.out.println("after execute time:" + times + "," + methodName + " execute end");
	}

	public void afterReturning(JoinPoint joinPoint, Object result) {
		String methodName = joinPoint.getSignature().getName();
		System.out.println(methodName + " execute result:" + result);
	}
	
	public void afterThrowing(JoinPoint joinPoint, Exception e) {
		String methodName = joinPoint.getSignature().getName();
		System.out.println(methodName + " execute exception:" + e);
	}

}
 

3、业务类LoginService.java

package com.cailei.aop;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.cailei.aop.service.LoginService;

public class Test {

	public static void main(String[] args) throws Exception {
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		LoginService ls = (LoginService)ac.getBean("loginService");
		ls.login("lucy", "123456");
		ls.login("lucy", "111111");
		
	}
}
 

4、spring配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/tx
         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
         
         <bean id="loggingAspect" class="com.cailei.aop.aspect.LoggingAspect"></bean>
         <bean id="loginService" class="com.cailei.aop.service.LoginService"></bean>
         
         <aop:config>
         	<aop:pointcut expression="execution(* com.cailei.aop.service.*.*(..))" id="logPointcut"/>
         	<aop:aspect ref="loggingAspect" order="1">
         		<aop:before method="beforeMethod" pointcut-ref="logPointcut"/>
         		<aop:after method="afterMethod" pointcut-ref="logPointcut"/>
         		<aop:after-returning method="afterReturning" pointcut-ref="logPointcut" returning="result"/>
         		<aop:after-throwing method="afterThrowing" pointcut-ref="logPointcut" throwing="e"/>
         	</aop:aspect>
         </aop:config>

</beans>

运行结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值