博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AOP原理
阅读量:7032 次
发布时间:2019-06-28

本文共 748 字,大约阅读时间需要 2 分钟。

hot3.png

AOP概述

软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃,AOP的引入将有效弥补OOP的不足,OOP和AOP分别从纵向和横向对软件进行抽象,有效地消除重复性的代码,使代码以更优雅的更有效的方式进行逻辑表达。

AOP有三种植入切面的方法:其一是编译期织入,这要求使用特殊的Java编译器,AspectJ是其中的代表者;其二是类装载期织入,而这要求使用特殊的类装载器,AspectJ和AspectWerkz是其中的代表者;其三为动态代理织入,在运行期为目标类添加增强生成子类的方式,Spring AOP采用动态代理织入切面。

Spring AOP使用了两种代理机制,一种是基于JDK的动态代理,另一种是基于CGLib的动态代理,之所以需要两种代理机制,很大程度上是因为JDK本身只提供基于接口的代理,不支持类的代理。

基于JDK的代理和基于CGLib的代理是Spring AOP的核心实现技术,认识这两代理技术,有助于探究Spring AOP的实现机理。只要你愿意,你甚至可以抛开Spring,提供自己的AOP实现。

  • 非业务类代码和业务类代码分离,比如测试方法执行时间
  • 减少代码的重复
  • 横切代码仅出现一次,利用反射调用业务类的业务逻辑
  • jdk动态代理在创建代理对象时,需要和接口绑定,这是jdk动态代理的瓶颈。如果没有定义业务类的实现接口,如果创建代理对象?此时就需要cglib,cglib可以基于类创建动态代理,hibernate正是利用cglib创建代理

转载于:https://my.oschina.net/hanruikai/blog/158090

你可能感兴趣的文章
大数据为青岛点亮智慧城市“灯塔”
查看>>
PSEG收购BayWa r.e北卡罗来纳州6.6MW光伏项目
查看>>
通过“追寻赎金的流向”评估隐藏在以医院为目标的勒索软件背后的犯罪活
查看>>
NetApp公司的4KB块写入技术真能容纳更多数据吗?
查看>>
2016年我国车联网行业市场前景分析
查看>>
Win10份额不给力?企业市场表现惊艳
查看>>
Hortonworks“来到了”亚马逊AWS上
查看>>
昆腾公司稍感安慰:向外扩展存储业务营收有所提升
查看>>
爱立信预计2017年下半年实现初始5G网络
查看>>
Facebook将为尼尔森公司提供用户电视评价数据
查看>>
美国防部针对五角大楼网络武器采购实施改革
查看>>
北京市将率先建5G试验网 扩大WiFi覆盖范围
查看>>
振动传感器选型需注意的问题盘点
查看>>
Ceryx为企业提供UC
查看>>
三家SDN元老企业联手打造最佳SDN传输解决方案
查看>>
跨国企业的工业物联网市场布局分析
查看>>
秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载]
查看>>
贷款建一个10KW的光伏电站 收益靠谱么?
查看>>
企业应如何选购内容分发网络(CDN)?
查看>>
绿色债去年发行320亿美元 标准指引有望加速落地
查看>>