在我现在进行的基于 Spring 的 Web 应用程序项目中,开发人员已将两个日志记录语句写入每个函数。一个记录函数的入口,另一个记录退出。这个想法是跟踪执行路径——至少是一个功能级别。
有没有一种方法可以在不让这些重复语句使整个代码库乱七八糟的情况下实现这一目标?
明确地说,我们要记录所有函数,而不仅仅是 Spring bean 的公共(public)方法。
最佳答案
您可以使用 Spring AOP 执行此操作.
Spring AOP 将允许您“拦截”方法调用并在方法调用之前和/或之后执行任意代码。您还将能够检查这些方法的参数和返回值。
要实现您正在谈论的日志记录,您会做这样的事情,可能使用 around advice :
- 拦截所有方法调用(或者最好只拦截您感兴趣的方法调用)。
- 做你的“方法前”记录。
- 调用方法。
- 进行“方法后”记录。
有关如何执行此操作的所有 Spring 详细信息都可以在提供的文档中找到。
关于java - 您如何跟踪基于 Spring 的 Web 应用程序中所有功能的进入和退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194108/