0

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

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

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

ps:@Standardized 是自定义注解。

从我在文档中阅读的内容来看,这个配置应该是正确的(如果不是,请告诉我),但是当我在 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)

我尝试使用 (@Standardized *,..) 而不是 (@Standardized (*),..) (我知道的结果不一样),但我仍然有同样的错误。

有人知道为什么吗?

提前感谢您的帮助。

问候。

4

1 回答 1

2

除非@Standardized注释在默认包中,否则您需要为注释指定 FQN 名称或使用@*..Standardized.

于 2012-05-11T15:45:29.810 回答