cglib代理指定只代理某个方法
cglib代理指定只代理某个方法
import net.sf.cglib.proxy.*;
import java.lang.reflect.Method;
class SampleClass{
public void test(){
System.out.println("test");
}
public void test2(){
System.out.println("test2");
}
}
public class test {
public static void main(String[] args) {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(SampleClass.class);
CallbackHelper callbackHelper = new CallbackHelper(SampleClass.class, new Class[0]) {
@Override
protected Object getCallback(Method method) {
// 只代理方法名是test的方法
if(method.getName().equals("test")){
return new MethodInterceptor(){
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.print("代理---");
return methodProxy.invokeSuper(o, objects);
}
};
}else{
return NoOp.INSTANCE;
}
}
};
enhancer.setCallbackFilter(callbackHelper);
enhancer.setCallbacks(callbackHelper.getCallbacks());
SampleClass proxy = (SampleClass) enhancer.create();
proxy.test();
proxy.test2();
}
}
输出:
代理---test
test2
评论区
请写下您的评论...
猜你喜欢
blog
cglib代理常用接口和api
ASM,java基础
1101
SampleClass类的非final的所有成员方法。如果只想代理某个指定的方法,可以实现CallbackFilter接口,如下:importnet.sf.cglib.proxy
blog
初步探究cglib动态代理的原理
java基础
3443
初步探究cglib动态代理的原理之前我们说了一下jdk动态代理的原理http://www.jiajiajia.club/weblog/blog/artical/60本章说一下cglib动态代理,做个
ASM,java基础
1256
关于cglib代理的概念和原理以及常用api,请参考:初步探究cglib动态代理的原理:http://www.jiajiajia.club/blog/artical/yjw520
weblog
4869
前言
好久就开始关注cglib动态代理了,但是到今天才算是有点搞明白~cglib动态代理底层用到了asm等字节码操作框架。不懂的可以先百度百度asm是干啥的,在这里也提供一些文章,但是可能比较深入
blog
java静态代理
java基础
3107
java静态代理示例packageclub.jiajiajia.test.staticproxy;publicinterfaceBuyHouse{voidbuyHosue();//买房子
blog
nginx正向代理和反向代理的区别
算法基础
1493
房的例子来比喻正向代理A(客户端)想租C(服务端)的房子(A(客户端)知道C(服务端)有房子),但是A(客户端)并不认识C(服务端)租不到。B(代理)认识C(服务端)能租这个房子所以你找了B(代理)帮忙
linux系统
1759
nginx代理上传文件报413(RequestEntityTooLarge)错误的解决方案RequestEntityTooLarge:请求的实体太大,nginx代理时默认的大小是1M解决方案:设置
blog
nginx配置代理静态资源-实现动静分离
linux系统
6698
方案一:一般配置方案二:访问某个域名时代理静态资源文件方案一:一般配置 如果以html、htm、gif、jpg、jpeg、bmp、png、ico、txt、js、css结尾的资源,均由nginx处理
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。