在我的一个方面,我有以下方法:
@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(*),..)(我不知道会有相同的结果)但我仍然有同样的错误。
有人知道为什么吗?
提前感谢您的帮助。
问候。
答案 0 :(得分:2)
除非@Standardized
注释位于默认包中,否则您需要为注释指定FQN名称或使用类似@*..Standardized
的模式。