【发布时间】:2014-02-18 06:55:18
【问题描述】:
假设我有一个我不理解的 Java 服务器应用程序。我想知道请求处理的整个执行顺序(见下例)
从客户端 (...) 收到带有标头 (...) 和正文 (...) 的 HttpRerquest 12345 使用 HttpRequest 12345 输入 WebUserController 使用 HttpRequest 12345 输入 UserProcessor.process1 使用 createUserRequest(userName=..., userEmail=..., ...) 输入 UserProcessor.process2 使用 User(userName=..., userEmail=..., ...) 输入 userDAO.createUser 在我知道只有一种方法可以得到它:手动将跟踪调用添加到应用程序代码。现在我想知道是否有一种 自动 方法可以将这些跟踪调用添加到代码中。我正在考虑 byte 检测,它将跟踪调用添加到给定 jar 中所有公共类的所有公共方法。有意义吗?
您能否建议任何其他方式来了解该应用程序的工作原理?
【问题讨论】:
-
你绝对应该看看面向方面的编程 (en.wikipedia.org/wiki/Aspect-oriented_programming)。
-
@Smutje - 你也应该手动添加方面吗?
-
就我而言,如果您可以自动识别 AOP 切入点(即每个方法的入口和出口点),您不必手动执行此操作,而是将其自动化(附加好处:您不必用切入点定义污染您的业务代码)。很快找到了一篇关于AOP和Spring的文章:marxsoftware.blogspot.de/2008/10/…
-
@Michael 你说的有道理,你会使用什么工具来自动完成所有公共方法的检测?我知道这在运行时提供了一些概述:kenai.com/projects/btrace/pages/Home
-
@Michael 正如 Smutje 所说,AOP 可以成为解决方案,我认为这可能是您正在寻找的:stackoverflow.com/questions/8839077/…(有问题的用户的名字也是 Michael :P )。如果解决方案有效,请分享
标签: java trace maintenance