当前位置: 首页 > 知识库问答 >
问题:

AspectJ-无法识别连接点表达式中是否存在注释

仉梓
2023-03-14

在我的一个方面,我有以下方法:

@Before("execution (* org.xx.xx.xx..*.*(@Standardized (*),..))")
public void standardize(JoinPoint jp) throws Throwable {
}

目标是找到我的应用程序包的所有方法,其中至少有一个参数用@standarized注释(而不是用不同的@standarized注释的类型)

ps:@标准化是一个自定义注释。

从我在留档中读到的内容来看,这个配置应该是正确的(如果不是,请告诉我),但是当我在JBoss服务器下部署我的应用程序时,我有以下异常:

java.lang.IllegalArgumentException:警告不匹配此类型名称:标准化

细节:

11.05.12 17:02:35 ERROR - ContextLoader.java@initWebApplicationContext: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.config.internalTransactionAdvisor': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: Standardized [Xlint:invalidAbsoluteTypeName]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

我试过(@standarized*,…)而不是(@标准化(*),…)(这将不会有相同的结果,我知道),但我仍然有相同的错误。

有人知道为什么吗?

提前感谢任何帮助。

当做

共有1个答案

东门彬
2023-03-14

除非默认包中有标准化的注释,否则需要为注释指定FQN名称或使用类似于@*的模式。。标准化。

 类似资料:
  • 我这样做是为了解决PostgreSQL中唯一约束的两列中有空值的问题: 请参见此处:使用空列创建唯一约束 但现在我有另一个问题,因为使用索引而不是约束,我有一个错误: 不存在与冲突规范匹配的唯一或排除约束 当我这样做SQL要求: 注意:我确实得到了正确的约束错误,没有“on conflict”行。

  • 到目前为止,我已经尝试了以下表达式,但没有成功: 有人能给我指出正确的解决办法吗?有可能吗?

  • 我在eclipse中签出了一个gradle项目,但它不能识别任何注释 其中配置是注释。 所有与注释对应的导入也失败,错误如下: 包含所有文件的整个项目将填充错误。但在Intellij中,同样的项目不存在这样的问题。我错过了Eclipse的哪一个设置? gradle build工作很好,尽管

  • 问题内容: 我试图定义一个切入点表达式以匹配包含用特定注释注释的参数的方法,而不管该参数位于什么位置。在我的情况下,我正在寻找注释。例如: 匹配方式: 到目前为止,我已经尝试过以下表达式,但是没有运气: 有人可以指出正确的解决方案吗?有可能吗? 问题答案: 您不能通过AspectJ 中的任意位置绑定参数,因为这可能导致歧义。试想一下,您有两个或多个相同类型的参数(在这种情况下,使用相同的注释类型进

  • 我有一个带两个可能输出的字符串,它将被<代码>

  • 我有以下正则表达式: 如您所见,我正在尝试设置两个命名的捕获组—和。但是,在运行此命令并检查匹配组时,没有group-只有。 使用C#: 我能够通过在https://regex101.com/. 如果您放入以下测试字符串: 您会注意到您只返回了一个命名的捕获组-。 为什么没有被返回? 看起来我对命名的捕获组使用了正确的语法。我尝试在捕获组外和正则表达式模式内添加括号,但都没有成功。我在想也许Reg