当前位置: 首页 > news >正文

邢台资讯/嘉兴网站建设方案优化

邢台资讯,嘉兴网站建设方案优化,深圳pcb人才网,wordpress 网站搭建AOP即面向切面编程,他的基本单元就是一个切面,相比于OOP他的思想主要是对方法功能进行封装,使得它可以通过配置方式灵活的切入到某一批目标对象方法中,它可以看作是原始类的增强,为其添加了额外的功能,一般…

AOP即面向切面编程,他的基本单元就是一个切面,相比于OOP他的思想主要是对方法功能进行封装,使得它可以通过配置方式灵活的切入到某一批目标对象方法中,它可以看作是原始类的增强,为其添加了额外的功能,一般用的比较多实在事务管理、日志和缓存。

AOP分为两种一个是静态代理一个是动态代理,也就是AspectJ和SpringAOP,静态代理是在编译阶段将Aspect植入Java字节码中,运行的时候就是增强之后的AOP对象。

而动态代码以Spring AOP举例,他不会去修改字节码,而是在内存中临时为方法生成一个AOP对象,并且这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并且回调原对象的方法。

而实现这个过程有两种方式一个是JDK动态代理一个是CGLIB动态代理,两者的触发条件有所不同,如果需要被代理的类实现了一个接口那么就是使用JDK动态代理,否则就是CGLIB动态代理,也可以通过@EnableAspectJAutoProxy注解显示配置使用CGLIB;

JDK动态代理流程大概是在类加载过程中会动态生成代理类Proxy,他是在内存直接生成字节码并通过类加载器加载到JVM中,然后再类的初始化的过程,代理类会实现目标类的接口并持有一个InvocationHandler接口的实例,然后再调用代理对象方法的时候,JVM会将其转发到InvocationHandler的invoke()方法中,然后执行切面逻辑和目标方法的调用,当代理对象不再被引用的时候,JVM的垃圾回收期会将其标记为可回收对象,并回收其内存。

CGLIB动态代理流程大概是在类加载过程中通过Enhancer类动态生成目标类的子类作为代理类,在类初始化时会继承目标类并重写目标方法,同时代理类还会持有一个MethodInterceptor的实例并创建出代理对象,当调用被代理对象方法时,JVM会将其转发到MethodInterceptor的intercept方法上执行切面逻辑和目标方法的调用,随着不被引用也会被回收。

总的来说JDK动态代理和CGLIB动态代理最大的区别就是一个时通过“反射机制”创造一个包含了目标类方法的增强类实现切面逻辑和原始逻辑,一个则是以子类继承的方式并额外持有增强实例调用切面逻辑和原始逻辑。

参考:Java AOP的底层实现原理 - 健人雄 - 博客园

http://www.whsansanxincailiao.cn/news/31982934.html

相关文章:

  • 如何做网站结构优化/外贸网站大全
  • 上海市建设工程造价信息网/百度seo价格查询
  • 南京网站建设网/站长之家seo查找
  • 信息公开和网站建设工作总结/艾滋病多久能检查出来
  • 抚顺市住房和城乡建设委员会网站/seo排名点击器原理
  • 石家庄做网站制作公司/引擎搜索网站
  • 株洲网站开发/免费软文发布平台有哪些
  • 建站用什么工具/海外推广是做什么的
  • 个性网站功能/seo辅助优化工具
  • 锦溪网站建设/html网页设计模板
  • 免费jsp源码分享网站/怎么做自己的网页
  • 天津网站建设公司/百度推广工资多少钱一个月
  • 做企业公司网站/兰州网站seo优化
  • 网站建设服务商是什么/seo点石论坛
  • 软件工程 旅游网站开发er图/谷歌seo详细教学
  • 制作企业网站多少钱/google搜索下载
  • 要建一个网站该怎么做/如何查一个关键词的搜索量
  • 佛山微网站建设多少钱/软文价格
  • 网站qq线客服咋做/国内搜索引擎排行榜
  • 商标注册号/宁德seo推广
  • 红和蓝的企业网站设计/赣州seo顾问
  • 周口网站制作/外贸接单平台
  • 哪有做网站 的/好的推广方式
  • 清风室内设计培训学校官网/如何做谷歌seo推广
  • 青岛市建设局网站停工/搜索指数查询平台
  • 南通 网站优化/外贸网站
  • 自助网站建设技术支持/学生没钱怎么开网店
  • 做的网站在百度上搜不出来/发广告推广平台
  • wordpress 如何生成 htlm/仁茂网络seo
  • wordpress信息收集表单制作/企业网站seo哪里好