概述
正在学习中,遇到这个问题,service拦截器使用Enhancer.enhance()方法就会报错,使用注解可以正常运行,service拦截器也可以正常//使用Enhancer.enhance()方法就会报错,
package com.testjfinal.service;
import com.jfinal.aop.Before;
import com.jfinal.aop.Enhancer;
import com.testjfinal.Interceptor.ServiceInteceptor;
public class BaseService {
public static final BaseService me= Enhancer.enhance(BaseService.class,ServiceInteceptor.class);
public boolean doSomthing(){
//处理业务逻辑
System.out.println("调用了BaseService doSomthing");
return true;
}
}
报错信息:
Error:(14, 49) java: 对于enhance(java.lang.Class,java.lang.Class), 找不到合适的方法
方法 com.jfinal.aop.Enhancer.enhance(java.lang.Class)不适用
(无法推断类型变量 T
(实际参数列表和形式参数列表长度不同))
方法 com.jfinal.aop.Enhancer.enhance(java.lang.Class,com.jfinal.aop.Interceptor...)不适用
(无法推断类型变量 T
(varargs 不匹配; java.lang.Class无法转换为com.jfinal.aop.Interceptor))
//使用注解可以正常运行,service拦截器也可以正常
package com.testjfinal.service;
import com.jfinal.aop.Before;
import com.jfinal.aop.Enhancer;
import com.testjfinal.Interceptor.ServiceInteceptor;
@Before(ServiceInteceptor.class)
public class BaseService {
public static final BaseService me= Enhancer.enhance(BaseService.class)
public boolean doSomthing(){
//处理业务逻辑
System.out.println("调用了BaseService doSomthing");
return true;
}
}
//附 ServiceInteceptor 类
package com.testjfinal.Interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
public class ServiceInteceptor implements Interceptor {
@Override
public void intercept(Invocation invocation) {
System.out.println("调用Service级别拦截器-ServiceInteceptor:"+invocation.isActionInvocation());
invocation.invoke();
}
}
最后
以上就是愤怒万宝路为你收集整理的java enhancer_service拦截器使用Enhancer.enhance()方法报错,使用@Before正常的全部内容,希望文章能够帮你解决java enhancer_service拦截器使用Enhancer.enhance()方法报错,使用@Before正常所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复