Spring-动态代理

动态代理和静态代理角色一样

动态代理的代理类是动态生成的,不是我们直接写好的

动态代理分为两大类:基于接口的动态代理,基于类的动态代理

1,基于接口--JDK动态代理【我们在这里使用】

2,基于类:cglib

3,Java字节码实现:javasist

需要了解两个类:Proxy :代理,InvocatioHandler:调用处理程序

InvocationHandler是由代理实例调用处理程序实现的接口。

每个代理实例都有一个关联的调用处理程序,当在代理实例上调用方法时,方法调用将被编码并分派到其调用处理程序的invoke方法。

proxy提供了创建动态代理类和实例的静态方法,它也是由这些方法创建的所有动态代理类的超类。

动态代理的好处

可以使真实角色的操作更加纯粹,不用去关注一些公共的业务

公共业务交给代理角色,实现了业务的分工

公共业务发生扩展的时候,方便集中管理

一个动态代理类代理的是一个接口,一般就是对应的一类业务

一个动态代理类可以代理多个类,只要时实现了同一个接口即可

代码

1 package com.nic.PeopleService; 2 3 public interface PeopleService { 4 public void add(); 5 public void delete(); 6 public void update(); 7 public void query(); 8 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjjys.html