gpt4 book ai didi

java - 内部方法调用方面

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:59 25 4
gpt4 key购买 nike

我有一个要求,我需要围绕内部方法调用放置一个方面,我的意思是内部

class Person{ 
public void outerMethod()
{
internalMethod()
}
// Need an aspect here !!
public void internalMethod()
{
}
}

我知道使用传统的 spring aop 是不可能的,native aspectj 是否为此提供了一个工具?我能得到相同的指示吗

最佳答案

当然了:

// match the call in outerMethod
pointcut callInnerMethod() : call(* Person.internalMethod(..));

或者

// match innerMethod itself
pointcut executeInnerMethod() : execution(* Person.internalMethod(..));

您可以将这些建议与beforeafteraround 建议结合使用:

void before() : callInnerMethod() /* or executeInnerMethod() */ {
// do something here
}

void around() : callInnerMethod() /* or executeInnerMethod() */{
// do something here
proceed();
// do something else here
}

void after() returning() : callInnerMethod() /* or executeInnerMethod() */{
// do something here
}

请注意,这是传统的 aspectj 语法,即您在 .aj 文件中使用的语法。您还可以在 @AspectJ .java 语法中使用具有不同语法的所有这些构造。

请咨询AspectJ Quick Reference或阅读 AspectJ in Action

关于java - 内部方法调用方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com