我正在使用@AspectJ样式来编写方面,以处理我们的应用程序中的日志记录.基本上我有一个切入点设置如下:
@Pointcut("call(public * com.example..*(..))")
public void logging() {}
Run Code Online (Sandbox Code Playgroud)
然后像之前和之后的建议一样:
@Before("logging()")
public void entering() {...}
...
@After("logging()")
public void exiting() {...}
Run Code Online (Sandbox Code Playgroud)
我想以下列格式创建这些方法的日志:
logger.trace("ENTERING/EXITING [" className + "." + methodName "()]");
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何获取类和方法名称的引用.我试过了:
joinPoint.getThis().getClass()
Run Code Online (Sandbox Code Playgroud)
但这似乎返回了调用者的类名.
class A {
public void a() {
B.b();
}
}
class B {
public void b() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
会导致以下日志
ENTERING [A.b()]
Run Code Online (Sandbox Code Playgroud)
有人可以提供一些关于如何获得实际的连接点类和方法名称的帮助
我们有一个maven模块,设置如下:
a (parent)
-> b (submodule)
-> c (submodule)
-> d (submodule)
Run Code Online (Sandbox Code Playgroud)
这个子模块列表设置为随着时间的推移而增长(到20个左右的列表).我们有另一个模块,它将包含a的所有子模块作为依赖项.有没有一种巧妙的方法,而不是必须手动保持子模块列表与依赖项列表同步.即是否有任何方式将a和所有子模块包含为依赖?
我编写了一个扩展JCheckBox的类,现在我想要覆盖单击复选框时执行的方法.我试过'setSelected'和'doClick',但是没有像我期望的那样.
任何帮助是极大的赞赏.