温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Proxy代理有何作用

发布时间:2026-09-19 11:28:24 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,**Proxy(代理)**通常有两层常见含义,但大多数情况下开发者指的是 Java 动态代理(Dynamic Proxy)。下面分别说明它们的作用和用途。


一、Java 动态代理(java.lang.reflect.Proxy)的作用

1️⃣ 核心作用

在不修改原有类代码的情况下,对目标对象的方法进行增强(拦截、包装、控制)。


2️⃣ 常见使用场景

✅ 1. AOP(面向切面编程)

  • 日志记录
  • 事务管理
  • 权限校验
  • 性能监控
public Object invoke(Object proxy, Method method, Object[] args) {
    log.info("方法开始");
    Object result = method.invoke(target, args);
    log.info("方法结束");
    return result;
}

✅ 2. 远程调用(RPC)

  • 客户端调用的是“代理对象”
  • 代理负责把请求发送到远程服务器
  • 例如:RMI、Dubbo、Feign

✅ 3. 接口隔离 / 延迟加载

  • 真正对象很重,代理先占位
  • 用到时才创建真实对象

✅ 4. 安全控制

  • 在方法执行前判断权限
  • 无权限直接拦截

3️⃣ Java 动态代理的特点

  • 只能代理接口(JDK Proxy)
  • 运行期动态生成代理类
  • 核心类:
    • Proxy
    • InvocationHandler
Proxy.newProxyInstance(
    classLoader,
    interfaces,
    invocationHandler
);

二、CGLIB 代理(补充)

如果类没有接口,可以使用 CGLIB:

  • 通过继承方式生成子类代理
  • Spring AOP 默认使用

三、静态代理(了解即可)

作用

  • 手动写代理类
  • 缺点:类多、维护难

四、总结一句话

Java Proxy 代理的作用:在运行时创建一个“替身对象”,用来控制或增强对真实对象的访问。

如果你愿意,我可以:

  • 用 Spring AOP 举例
  • 对比 JDK Proxy vs CGLIB
  • 写一个 完整动态代理示例

你想看哪一种?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手