静态代理

作者: jsjack_wang | 来源:发表于2018-01-17 12:11 被阅读0次
一、自己理解
所谓静态代理,其实就是代理类由自己实现,编译时期.class文件已经存在。代理类和委托类(被代理类),实现相同接口,在委托类中实现具体的业务逻辑,而代理类这做数据预处理等工作
二、代码实现
User.java文件
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
    private String username;
    private String password;
}

IUserDao.java文件
public interface IUserDao {
    void saveUser(User user);
    int updateUser(User user);
}

UserDaoImpl.java文件
public class UserDaoImpl implements IUserDao {
    @Override
    public void saveUser(User user) {
        System.out.println("UserDaoImpl save user.");
    }

    @Override
    public int updateUser(User user) {
        System.out.println("UserDaoImpl update user.");
        return 0;
    }
}

UserStaticProxy.java文件
public class UserStaticProxy implements IUserDao {

    private IUserDao userDao = null;

    public UserStaticProxy(IUserDao userDao) {
        this.userDao = userDao;
    }


    @Override
    public void saveUser(User user) {
        System.out.println("Proxy saveUser before.");
        userDao.saveUser(user);
        System.out.println("Proxy saveUser after.");
    }

    @Override
    public int updateUser(User user) {
        System.out.println("Proxy updateUser before.");
        int affectRecords = userDao.updateUser(user);
        System.out.println("Proxy updateUser after.");
        return affectRecords;
    }
}
三、测试
public class UserProxyTest {

    @Test
    public void testStaticProxy() {
        User user = new User();
        IUserDao userDao = new UserDaoImpl();
        IUserDao proxyUserDao = new UserStaticProxy(userDao);
        proxyUserDao.saveUser(user);
        proxyUserDao.updateUser(user);
    }
}

相关文章

  • JAVA动态代理的实现方式

    1. 静态代理VS动态代理 代理类可以增强被代理对象的方法。可分为静态代理和动态代理。 1.1 静态代理 静态代理...

  • 带你初识Java的代理模式

    Spring AOP是基于动态代理设计模式实现的,相对的就有静态代理 动态代理和静态代理 静态代理 对于静态代理,...

  • 编程常用的设计模式

    动态代理和静态代理 静态代理 动态代理 静态代理与动态代理的区别 JDK中的动态代理和CGLIB 实现动态代理的方...

  • 静态AOP

    静态代理 代理分为静态代理和动态代理。静态代理由程序员创建或工具生成代理类的源码,再编译代理类,所谓静态也就是在程...

  • 静态代理、动态代理

    代理分为静态代理和动态代理 按照代理创建的时期,可以分为静态代理和动态代理: (1) 静态代理:由程序员或者...

  • 静态代理

    静态代理, : //创建代理 总结静态代理: 解决: 可以使用动态代理。

  • 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP

    文章目录 Java的静态代理 静态代理的优缺点 ABAP的静态代理 Spring AOP的动态代理 JDK动态代理...

  • 设计模式-动态代理模式

    之前介绍了代理模式,大家也都了解了代理模式,不过之前介绍的代理模式是静态代理,静态代理什么意思?静态代理指的是代理...

  • 代理-静态代理

    一、静态代理实现 按照代理模式的类图: 静态代理,代理类在编译时生成;即,需要编码代理类。 从实现上来看,静态代理...

  • 动态代理

    根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。 静态代理 先看下静态代理的例子。以链家中介代理租赁...

网友评论

    本文标题:静态代理

    本文链接:https://www.haomeiwen.com/subject/shoyoxtx.html