【发布时间】:2019-08-11 02:17:27
【问题描述】:
我正在尝试围绕自定义注释进行制作和方面。 我有这个注释:
@Target({ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface BatchControlAnnotation{
public Class<?> classType();
public String batchName() default "none";
}
我有这个切入点:
@Around("@annotation(BatchControlAnnotation)")
public Object beforeBatch(ProceedingJoinPoint punto, BatchControlAnnotation batchControlAnnotation) throws Throwable {
log.debug("HEMOS ENTRADO EN EL ASPECTO, HEMOS CONSEGUIDO LOS VALIRES DE LA ANOTACION CLASSTYPE : {} BATCHNAME {}", batchControlAnnotation.classType().getName(), batchControlAnnotation.batchName());
log.debug("before");
Object obj = null;
try {
obj = punto.proceed();
} catch (Throwable e) {
log.error(e.getMessage(), e);
throw e;
}
log.debug("after");
return obj;
}
但是我收到了这个错误,我不明白为什么:
org.springframework.security.config.annotation.configuration.ObjectPostProcessorConfiguration': bean初始化失败;嵌套异常是 java.lang.IllegalArgumentException:所指的错误类型不是 注释类型:******** 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) 在 org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:238) 在 org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:710) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:535) 在 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:327) 在 com.karabati.ApibackApp.main(ApibackApp.java:61) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
有人知道发生了什么吗?或者如何解决?
【问题讨论】:
标签: java spring-boot aop java-annotations