java - AspectJ 的“此建议不建议任何方法”
问题描述
在学习了一些关于它的理论之后,我正在尝试使用 AspectJ。
我已经做了一个非常基本的示例,预计会起作用,但在我的方法旁边,我得到了“此建议不建议任何方法”信息消息。
我的代码如下:
@Aspect
public class LoggingAspect {
private static Logger logger = Logger.getLogger(Object.class);
@AfterReturning(pointcut = "execution(* com.ecc.bo.company.Company.getName(..))", returning = "x")
public void logResult(Object x) {
logger.error("WITH ASPECTS, method returned: " + x.toString());
}
}
我真的不明白为什么,因为包名称在我输入时自动完成。另外,我在上述方法上设置了一个断点以防万一(getName),它确实被调用了。
也许我错过了一些配置步骤,或者我找不到语法错误?
我也尝试过使用超通用版本
execution(* *(..))
但它似乎仍然与任何方法都不匹配。
编辑:这是 Company 类的“有趣”部分:
public class Company {
private String name;
public String getName() {
return name;
}
}
没有特别的注解,至少没有与 AspectJ 相关的
解决方案
认为问题可能出在切入点中的点 getName(..) 中,点表示方法获取某些东西,在您的代码中我们可以看到 getName() 没有任何变量,删除点或在方法中设置一些变量。
推荐阅读
- php - React Native images save to php (laravel) server
- reactjs - ReactJS 网络推送通知在某个时间?
- spring - @Transaction 不适用于同一类的多个内部方法或调用另一个类的方法时
- python - 键:字典的值一旦弹出就没有被插入?
- azure - Azure 数据工厂 v2 - Web 活动 - 向 HTTPS 自签名证书发布请求
- oauth-2.0 - OAuth2 中的“资源所有者密码凭据”是否安全?
- c# - 使用 UI 按钮移动游戏对象
- microservices - 微服务的 API-Gateway 应该部署在哪里?
- reactjs - 在应用程序构建后更改 React 构建路径
- python-3.x - subprocess.check_output 在 python 3 中不起作用,但在 python 2.7 中起作用