Java动态代理
Java动态代理
@Date 2016.11.24
静态代理
- 提前创建一个代理类,实现和业务逻辑同样的接口
- 传递业务实现类的对象,在调用业务方法前后可以做代理的逻辑
- 扩展原有功能,不侵入原有代码
- 如果需要代理的业务类变多,并且实现方法不一样的情况下,对应的代理类会增多
Java本身动态代理
- 只能代理接口
- 实现java.lang.reflect.InvocationHandler接口
- 通过Proxy.newProxyInstance (obj.getClass().getClassLoader(),obj.getClass().getInterfaces(), InvocationHandler invocationHandler);创建代理类
- 虚拟机自动调用invoke方法
cglib动态代理
- 运行期间动态生成Java字节码
- 不用实现接口,直接底层生成代理类覆盖父类中的方法
- 实现MethodInterceptor接口的intercept方法
- 调用重写方法比JDK本身的代理速度快
- 加载cglib耗时比JDK本身的时间长
- 不适合反复动态生成新的代理类

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java VM 启动参数详解
Java VM 启动参数详解 @Date 2017.05.24 打印输出相关参数 -verbose 打印加载类的详细信息 -verbose:gc 打印虚拟机中GC的详细情况:显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof 虚拟机在出现内存溢出异常时Dump 出当前的内存堆转储快照 -XX:+TraceClassLoading 打印加载类的详细信息 -XX:+PrintGCDetails 详细了解GC中的变化 -XX:+PrintGCDateStamps 了解垃圾收集发生的时间,自JVM启动以后以秒计量 -Xloggc:/home/admin/logs/gc.log GC日志文件的路径 涉及堆相关的参数 -server server模式下,新生代选择的是并行GC,旧生代选择的是并行GC client模式下,新生代选择的是串行GC,旧生代选择的是串行GC -Xms2g 堆的初始值2g -Xmx2g 堆的最大值2g...
- 下一篇
python 图片在线转字符画预览
文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中。 今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可以让更多的人来体验。 体验网址:https://www.manjiexiang.cn/blog/post_img 举个栗子,就是这是一张图片 经过转换成的字符画是这样的,这个txt的文件 代码部分: 使用PIL处理图片,resize方法转成指定宽高 from PIL import Image im = Image.open("qq.png") im = im.resize((width, height), Image.NEAREST) 像素转字符方法,将r,b,g转化为灰度值,然后根据灰度值的大小确定所选字符在ascii_char中的位置。 def get_char(r, g, b, alpha=256): ascii_char = list("$@B%8&WM#*oahk...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境