1、什么是代理?
给目标对象提供代理对象,并由代理对象控制着对目标对象的引用——控制访问,功能增强
目标对象有自己干的事情,不能直接在目标对象上直接更改增加功能,所以用到代理AOP
2、代理的目的
①控制访问:通过代理对象的方式间接的访问目标对象,防止直接访问目标对象给系统带来不必要的复杂性
②功能增强:通过代理业务对原有业务进行增强
3、如何实现代理
①JDK实现静态代理
②动态代理——JDK实现/cglib实现
静态代理
控制访问:
功能增强:找真正需要增强的方法,定义一个代理接口,里面有需要实现的方法,增强功能
缺点:当目标类增多的时候,代理类直接增加代理的目标类,会造成代理关系混乱
动态代理:
自动生成代理对象
再添加一个目标类,静态代理需要改变代理类,动态代理不需要改变代理类