动态代理
- 目标对象与代理对象
- 静态代理与动态代理
举个例子
比如在一个方法里面,在一个语句的执行前后都加上一个操作,如果用常规的方法,就要改原来的方法,手动添加。
静态代理
如果使用静态代理,要实现与目标对象一样的接口,在执行目标对象的方法前后添加开启事务方法,在之后添加关闭事务的方法,在静态代理的类中可以在方法中添加具体实现。
好处:在不修改目标对象的功能前提下,扩展目标对象的功能。
缺点:因为代理对象需要和目标对象实现一样的接口,导致代理类很多。
如果接口增加方法,目标对象和代理对象都要维护。
动态代理
- 如果使用动态代理,不需要实现接口。
- 代理对象的生成,是利用JDK API,动态的在内存中构建代理对象(需要我们指定创建代理对象/目标对象实现的接口类型)
- 动态代理,也叫作JDK代理,接口代理。