白话文之JDK动态代理

前言:

本人之前学习过很多关于jdk动态代理的知识,但是到头来就是不清楚应用场景是什么,究竟该怎么用。有关公司java培训的内容中,老大总是说要对难的技术敢于用,自己在写代码的时候学习、实践一下。本人有两三年开发经验,却一直没有手写过jdk动态代理,实属遗憾,特此写下学习的总结

为什么要学习jdk动态代理

1、为了装X,给小白看代码时,很有大佬的感觉,就喜欢给他们看不懂的代码
2、代码增强,实现权限校验、日志记录等功能
3、看不懂其他人写的牛B代码,但是需要调用他,在其基础上进行其他操作时

基本概念

**Proxy类:**这是一个jdk自带的写好的类,主要就是用于jdk动态代理吧,里面有一个静态方法newProxyInstance()方法,用于创建代理的对象

public static Object newProxyInstance(ClassLoader loader,
                                          Class<?>[] interfaces,
                                          InvocationHandler h)

loader:类加载器,固定写法,不懂不用去追究,等到了一定开发经验自然知道
interfaces:代理的接口,可以是多个接口
InvocationHandler:拦截处理器,就是待会我们自己写的子类

**InvocationHandler类:**这是我们动态代理生成的模板,需要重写里面的invok方法

public Object invoke(Object proxy, Method method, Object[] args) throws Throwable

proxy:代理对象
method:代理对象里面的方法
args:方法的参数

环境准备

现在有一个需求,编写一个查询学生的接口,我这里定义了student类,proxyService接口以及该实现类ProxyServiceImpl还有调用类ProxyController
student:

public class Student {
   

    private String name;

    private Integer age;

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值