Java高级-代理(proxy)

什么是代理

  • 代理是一种设计模式,当我们要访问目标类时,不是直接访问目标类,而是先调用其代理类,通过代理类来调用目标类完成操作。即从直接调用变为间接调用,这样做我们可以在代理类在调用目标类之气和之后去添加一些预处理和后处理的操作,来拓展不属于目标类的功能,比如说,我们可以在方法调用之前和调用结束之前,记录日志、在方法执行之前继续额外的参数校验,进行事务管理,如手动提交,权限校验等。
  • 静态代理

    • 在程序运行之前,我们就给目标类编写其代理类的代码,然后编译了其代理类,如此在程序运行之前就以及生成了它代理类的字节码文件。即我们事先编写然后编译,在程序运行的时候直接去读取这些字节码文件进行运行
  • 动态代理

为什么需要代理

  • 代理可以转移一部分对象的职责

代理长什么样子

  • 代理具有被代理对象中的所有方法,在这些方法执行之气或结束之前可以进行自定义的逻辑

代理与被代理类之间通过接口来进行联系。

示例如下

你可能感兴趣的:(Java,语言进阶学习,spring,java,后端,开发语言)