AOP::0 处错误,在两种不同方法上应用 aop 的绑定不一致

2023-12-27

我正在尝试在两个不同路径中的两种不同方法上应用 @before 方面

class Service1{
    public Object applyX(X x){
     //code
    }
}

class Service2{
    public OtherObject applyY(Y y){
     //code
    }
}

我有我的方面课程:

@Aspect
@Component
public class MyProcessor {

    @Before("execution(* com.a.b.c.Service1.applyX"
            + " (com.xp.X)) "
            + "&& args(engineEvaluationRequest) || "
            + "execution(* com.a.b.d.Service2.applyY"
            + " (com.yp.Y))"
            + "&& args(y)")
    public void process(X x ,Y y){
        //code
    }
}

我收到错误org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'objectMapperConfigurer' defined in class path resource [springfox/documentation/spring/web/SpringfoxWebMvcConfiguration.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 inconsistent binding

我不明白出了什么问题。我可以寻求帮助吗? 谢谢!


错误信息inconsistent binding已经说过了:你的变量绑定args()是不一致的,因为它是不明确的,因为||(逻辑或)运算符。任何一个X被发现并可以被绑定或Y,但另一个是未定义的。您可能假设如果变量未绑定,则默认为null,但这个假设是错误的。 AspectJ 不是这样工作的。您的切入点必须将变量明确地绑定到相应的通知参数。

编辑:因为||是一个逻辑或,因此是非排他的(与XOR),甚至可能会发生两个 OR 分支同时匹配的情况。那么应该绑定哪个匹配的参数或注释呢?这实在是很暧昧。

那么如何解决它呢?只需使用两个切入点/建议对,而不是仅使用一对。如果建议很复杂并且包含大量代码,您仍然可以将该代码分解为一个辅助方法,该方法采用JoinPoint参数左右。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AOP::0 处错误,在两种不同方法上应用 aop 的绑定不一致 的相关文章

随机推荐

  • 如何将身份验证、角色和安全性融入 DDD 中?

    如何在 C 域驱动设计项目中实现角色和安全性 关于它是否应该由调用应用程序 ASP NET MVC 实现还是在域模型本身 模型实体和服务 中实现 我们存在一些激烈的争论 有些人认为它应该在网站本身中 因为那里已经存在身份验证 但这意味着每次
  • 将屏幕截图上传到 iTunes Connect 时出现奇怪的错误

    我正在尝试将新的屏幕截图上传到 iTunes Connect 上的游戏页面 但当我这样做时 我收到了一个与现实和 或常识无关的错误 基本上 我上传了一堆具有正确分辨率 尺寸等的 iPhone 屏幕截图 然后收到一条错误消息 说我没有这样做
  • 如何在 igraph R 中的图组件之间添加边

    我有一个图表包含4 components 现在 我想在其中添加一个优势all components基于size of the membership 例如 下图包含4 components 首先 我将连接all components with
  • AngularJS - 原始/肮脏和触摸/未触摸之间的区别

    AngularJS 开发人员指南 表单 https docs angularjs org guide forms列出了许多有关表单和字段的样式和指令 对于每一个 都有一个 CSS 类 ng valid ng invalid ng prist
  • 创建 DPI 感知应用程序

    我有一个 C 表单应用程序 当我更改显示器的 DPI 时 所有控件都会移动 我用了代码this AutoScaleMode AutoScaleMode Dpi 但这并没有回避问题 有人有想法吗 编辑 从 NET 4 7 开始 Windows
  • 为什么需要设置 DefaultForbidScheme

    在 WebAPI net 核心项目中 我创建了一个验证 api 密钥的中间件类 通过验证它 它会检索该密钥在调用方法中拥有的权限 用户或管理员 我通过一个开关来设置原理 就像这样 GenericIdentity identity new G
  • 在 Haskell 中循环时

    如何在 Haskell 中编写以下伪代码 x 0 for i from 0 to 100 j 0 while f i j gt 0 x f i j j 1 f一些不重要的功能 我想出了这样的事情 a x i lt 0 100 let s t
  • 如何调整直接从 R 脚本渲染的 pdf 中的图形大小?

    我从一些地方读到 直接从 R 脚本渲染的 pdf 的图形大小可以设置为knitr opts chunk 我想从包含多个图形的 R 脚本制作一个 pdf 文件 并尝试使用以下命令调整图形大小opts chunk 然而 这并没有奏效 下面是一个
  • 委托在 Objective-C 中如何工作?

    有谁知道我在哪里可以找到有关应用程序委托的内容和工作方式的良好解释 教程objective C 我手头的两本书没有详述delegates足够了 并且没有很好地解释它们 让我真正理解它们的力量和功能 如有疑问 请检查docs https de
  • 并发和协调运行时 (CCR) 学习资源

    我最近正在学习它的内部和外部并发和协调运行时 CCR http msdn microsoft com en us library bb905450 aspx为这项相对较新的技术寻找良好的学习资源非常困难 谷歌快速搜索后 Creedence
  • 如何在cmake中打印所有编译选项

    我的项目使用 cmake 一些编译选项是通过配置的set set CMAKE CXX FLAGS DEBUG g set CMAKE CXX FLAGS DEBUG CMAKE CXX FLAGS DEBUG O0 set CMAKE CX
  • UIGestureRecognizer 用于 UIView 的一部分

    我在 iOS 应用程序中使用 UIGestureRecognizer 但遇到了一些问题 我只希望手势在视图的某个区域起作用 因此我使用特定框架创建了一个新的 UIView 并将其添加到根视图中 手势工作正常 但现在唯一的问题是我无法单击新视
  • 如何使用 RSACryptoServiceProvider 解密加密文本?

    我已使用 RSACryptoServiceProvider 加密了文本 我导出了公钥和私钥 显然我只是想在解码器应用程序中公开公钥 所以我编写了如下代码 private const string PublicKey
  • 表单“onsubmit”没有被调用

    这是我的表格的一部分
  • 检查目录是否是符号链接?

    In os有一个函数os path islink PATH 它检查是否PATH是符号链接 但是如果当 PATH 是某个目录的符号链接时失败 相反 python 认为它是目录 os path isdir PATH 那么如何检查目录是否是链接呢
  • ConcurrentBag 实现中是否存在内存泄漏? [复制]

    这个问题在这里已经有答案了 可能的重复 ConcurrentBag 中可能存在内存泄漏吗 https stackoverflow com questions 5353164 possible memoryleak in concurrent
  • 如何在 Android 中发布图片

    我有这个表单 用于使用 HttpPost 将图像上传到服务器 我使用 HTML 表单完成了此操作 但它不适用于 Android 的 HttpPost 它回复 您没有选择要上传的文件 看来文件字段尚未发送
  • 在 iOS 上的广告中发送蓝牙 LE 数据

    我的应用程序作为蓝牙 LE 外围设备运行 我试图在广告中发送几个字节的自定义数据 func btStartBroadcasting peripheral CBPeripheralManager create an array of byte
  • 词形还原与词干提取之间有什么区别?

    我什么时候使用每个 另外 NLTK 词形还原是否依赖于词性 如果是的话不是更准确吗 短而密 http nlp stanford edu IR book html htmledition stemming and lemmatization
  • AOP::0 处错误,在两种不同方法上应用 aop 的绑定不一致

    我正在尝试在两个不同路径中的两种不同方法上应用 before 方面 class Service1 public Object applyX X x code class Service2 public OtherObject applyY