如何利用AOP实现在执行目标方法前获取参数占用内存大小_aop获取参数,返回值

这篇文章主要讲解了“如何利用AOP实现在执行目标方法前获取参数占用内存大小”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用AOP实现在执行目标方法前获取参数占用内存大小”吧!利用AOP。

这篇文章主要讲解了“如何利用AOP实现在执行目标方法前获取参数占用内存大小”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用AOP实现在执行目标方法前获取参数占用内存大小”吧!

利用AOP切面编程实现:打印目标方法的参数所占用内存大小。

Maven配置

		<dependency>
			<groupId>org.openjdk.jol</groupId>
			<artifactId>jol-core</artifactId>
			<version>0.8</version>
		</dependency>

Java代码

importlombok.extern.slf4j.Slf4j;
importorg.aspectj.lang.JoinPoint;
importorg.aspectj.lang.annotation.Aspect;
importorg.aspectj.lang.annotation.Before;
importorg.aspectj.lang.annotation.Pointcut;
importorg.openjdk.jol.info.GraphLayout;
importorg.springframework.stereotype.Component;

importjava.io.Seriapzable;

/**
*在目标方法执行前,打印目标方法的参数所占用内存大小
*/
@Aspect
@Slf4j
@Component
pubpcclassGraphLayoutPrinterimplementsSeriapzable{
privatestaticfinallongserialVersionUID=-8557926864119671723L;

/**
*com.xxx.batching包及所有子包下任何类的任何方法
*/
@Pointcut("execution(*com.xxx.batching..*.*(..))")
pubpcvoidpointCut(){}

@Before("pointCut()")
pubpcvoiduseMemory(JoinPointjoinPoint){
Objectarg=joinPoint.getArgs()[0];
longtotalSize=GraphLayout.parseInstance(arg).totalSize();
log.info("###Thetargetmethod:[{}]parameterusedmemoryis:[{}]KB",joinPoint.getSignature(),totalSize/1024);
}
}

感谢各位的阅读,以上就是“如何利用AOP实现在执行目标方法前获取参数占用内存大小”的内容了,经过本文的学习后,相信大家对如何利用AOP实现在执行目标方法前获取参数占用内存大小这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程,小编将为大家推送更多相关知识点的文章,欢迎关注!

综上所述,以上就是关于如何利用AOP实现在执行目标方法前获取参数占用内存大小的全部内容了,字数约1519字,希望能够解决你的困惑。屹东网往后会继续推荐如何利用AOP实现在执行目标方法前获取参数占用内存大小相关内容。