搞懂Java动态代理
前言 在日常开发中,我们经常接触到Spring AOP、Mybatis DAO接口映射、hsf consumer调用这些概念,而这些技术的实现又都绕不开动态代理。这篇文章,旨在彻底的搞懂动态代理是个什么鬼,JDK中如何实现动态代理这两个点。 java 静态代理 静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。 这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性。 一个典型的代理模式通常有三个角色,这里称之为代理三要素 共同接口 public interface Action { public void doSomething(); } 真实对象 public class RealObject implements Action{ public void doSomething() { System.out.p...