代理技术和AOP

来源:互联网 发布:mysql in exists 性能 编辑:程序博客网 时间:2024/05/20 18:18

生活中的代理和程序中的代理


AOP

系统中存在很多交叉业务,何谓交叉业务?交叉业务是贯穿在每个模块的公共部分。

交叉业务图解:


用具体的程序代码描述交叉业务:


交叉业务的编程问题即为面向切面的编程,简称AOP。AOP的目的就是要使交叉业务模块化。可以采用将切面代码移动到原始方法的周围,这与直接在

方法中编写切面代码的运行效果是一样的,如下:


使用代理技术正好可以解决这个问题,代理是实现AOP功能的核心和关键技术。

代理技术的种类

静态代理和动态代理


要为系统中的各种接口的类增加代理功能,那就需要太多的代理类,全部采用静态代理的方式,将是一种灾难。

JVM可以再运行期动态生成出类的字节码,这种动态生成的类往往被用做代理类,即动态代理。


动态代理的实现




InvocationHandler内部原理


动态代理的工作原理图





实现AOP的封装与配置






0 0
原创粉丝点击