我是靠谱客的博主 愤怒万宝路,最近开发中收集的这篇文章主要介绍java enhancer_service拦截器使用Enhancer.enhance()方法报错,使用@Before正常,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

正在学习中,遇到这个问题,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正常所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部