我正在尝试创建一个自定义注释。我有这样的注释:
@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.factor.support.abstractautowirecapablebeanfactor.createBean(abstractautowirecapablebeanfactor.java:498)在org.springframework.beans.factor.support.abstractbeanfactor.lambda$dogetbean$0(abstractbeanfactor.java:317)在xt.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:535)在org.springframework.boot.web.servlet.context.servletwebserverapplicationcontext.refresh(servletwebserverapplicationcontext.java:140)在org.springframework.boot.springapplication.refresh(servletwebserverapplicationcontext.java:759)在
孩子们知道发生了什么吗?或者怎么解决?
好吧,我已经看到问题出在哪里了。
@Around("@annotation(BatchControlAnnotation)")
public Object beforeBatch(ProceedingJoinPoint punto, BatchControlAnnotation batchControlAnnotation) throws Throwable
问题就出在这条线上:
@Around("@annotation(***BatchControlAnnotation***)")
标记的文本必须引用函数beforebatch
定义上的变量名,我引用的是类型。所以...将BatchControlAnnotation
更改为BatchControlAnnotation
,现在工作正常。
用变量名代替类型是很有趣的,但是是这样吗....
我正在尝试编译我正在编写的Java Web应用程序,并且我遇到了编译错误,我不知道该怎么办。从我完成的谷歌搜索中,我发现了这个SO问题,但是提问者使用的是EJB,而我的错误是在JPA实体类中。 下面是maven构建错误。 这是我的用户类文件。 我查看了javax.persistence.Index JavaDoc,我的声明是正确的,所以我在这里被难住了,有人知道我做错了什么吗?感谢您的时间和考虑。
我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?
使用Microfile openapi和swagger的Quarkus。我们正在尝试为@APIResponse创建自定义注释。这在夸克斯中可能吗?
本文向大家介绍Rust 自定义错误类型,包括了Rust 自定义错误类型的使用技巧和注意事项,需要的朋友参考一下 示例
我从micronaut下载。lanch是一个简单的grpc项目,在添加Kotlin grpc插件之前,我可以构建它。 除了build.gradle.kts的变化,没有什么比原来的脚手架项目。 我在build.gradle.kts.编辑 首先,为了匹配IntelliJ Kotlin版本 其次,为kotlin grpc proto自动生成的文件添加了文件夹 而最后 从INtelliJ或straigh命