静态代理
在开发中提供一个service类,对ServiceImpl类进行操作
在不改变原有代码的情况下,在这之上再加一层代理,通过对代理的操作实现对业务的修改
优点
- 可以使真实角色的操作更加存粹,不用去关注一些公共的业务
- 公共也就交给代理角色,实现了业务的分工
- 公共业务发生拓展的时候,方便集中管理
缺点
- 一个真实的角色就会产生一个代理角色,代码量会翻倍,开发效率就会变低
动态代理
本质使用反射机制实现的
InvocationHandle
ProxyInvocationHandle
优点
- 可以使真实角色的操作更加存粹,不用去关注一些公共的业务
- 公共也就交给代理角色,实现了业务的分工
- 公共业务发生拓展的时候,方便集中管理
- 动态代理,代理的是一类业务
缺点
- 一个真实的角色就会产生一个代理角色,代码量会翻倍,开发效率就会变低