一 引入jar包
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.1</version>
<optional>true</optional>
</dependency>
二 示例代码
public class Cat{
public String getName(){
return "cat";
}
public void sysHello() {
System.out.println("hello");
}
}
public class CatMethodInterceptor implements MethodInterceptor {
Logger logger = LoggerFactory.getLogger(CatMethodInterceptor.class);
@Override
public Object intercept(Object obj, Method method, Object[] params, MethodProxy proxy) throws Throwable {
logger.info("before");
Object result = proxy.invokeSuper(obj, params);
logger.info("after");
return result;
}
}
public class TestCatInterceptor {
Logger log = LoggerFactory.getLogger(CatMethodInterceptor.class);
@Test
public void testInterceptor () {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(Cat.class);
enhancer.setCallback(new CatMethodInterceptor());
Cat cat = (Cat)enhancer.create();
log.info(cat.getName());
cat.sysHello();
}
}