2

我无法控制在项目中调用 System.getProperty 的位置。每当 System.getProperty("SomeProperty"); 时,我想在控制台中记录一些信息。叫做。

如何实现这一点。

4

2 回答 2

3

您想使用AspectJ及其pointcut. 看看这里了解更多。

这是一个改编自上述教程的示例。

 @Aspect
 public class Foo {

   @Pointcut("call(* java.lang.System.getProperty(..))")
   void anyUtilityCall() {
       // do whatever you need
   }

 }
于 2012-07-20T03:30:25.503 回答
3

您可以尝试创建一个java.lang.SecurityManager引发异常或在方法中打印一些内容的checkPropertyAccess(String)方法。当某些东西访问系统属性时,它会被调用。

有关安全管理器的更多信息:

http://docs.oracle.com/javase/tutorial/essential/environment/security.html
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed2.html

于 2012-07-20T03:24:43.217 回答