spring的代理模式

本文介绍了Spring中的代理模式,包括静态代理、JDK动态代理和CGlib动态代理。静态代理需要手动创建代理类,适用于单一接口;JDK动态代理利用接口生成动态代理类,适用于有接口的场景;CGlib动态代理通过继承目标类生成子类实现,适用于无接口或多个接口的情况。文章详细讲解了每种代理的实现原理和优缺点。
摘要由CSDN通过智能技术生成

代理模式

代理模式分为:静态代理、Jdk动态代理、CGlib动态代理三种代理模式

比较三种代理:

静态代理是通过在代码中显式定义一个业务实现类一个代理,在代理类中对同名的业务方法进行包装,用户通过代理类调用被包装过的业务方法;
​ JDK动态代理是通过接口中的方法名,在动态生成的代理类中调用业务实现类的同名方法;
​ CGlib动态代理是通过继承业务类,生成的动态代理类是业务类的子类,通过重写业务方法进行代理;

1.1 静态代理

创建接口

public interface UserService {
   
    public void addUser(String a);
    public void updateUser(String b);
}

1.1.2 创建实现类

public class UserServiceImpl implements UserService{
   
    public void addUser(String a) {
   
        System.out.println("新增用户");
    }

    public void updateUser(String a) {
   
        System.out.println("修改用户");
    }
}

1.1.3 创建静态代理类

public class UserProxyHandle implements UserService {
   

    private UserServiceImpl userServiceImpl;

    public UserProxyHandle(UserServiceImpl userServiceImpl) {
   
        this.userServiceImpl = userServiceImpl;
    }

    public void addUser(String a) {
   
        System.out.println
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值