zoukankan      html  css  js  c++  java
  • 静态代理和JDK动态代理

    (开发环境是MyEclipse)

    静态代理示例

    HellowStaticProxy代理, HellowObject被代理

    HellowObject和HellowStaticProxy实现iHellowProxy接口

    (iHellowProxy中声明被需要被代理的方法)

    iHellowProxy接口:

    HellowObject类:

    HellowStaticObject类:

    测试:

    通过静态代理添加日志。

    (如果在HellowObject中直接记录日志,之后需求变动时,要回到源码中修改。HellowObject只需要实现简单的hellow方法,有可能变动需求的记录日志功能和hellow方法分开,开闭原则)

    JDK动态代理

    (基于反射,不需要创建静态代理实现固定接口,灵活性更高)

    (iHellowProxy接口和HellowObject类不变)

    DynamicProxy类:

    测试:

    (在使用log4j记录日志,记得在BuildPath中把jar包导进来,并且在根目录下放log4j.properties)

    (log4j.properties可以修改显示的Level,示例的rootLogger=info,stdout)

    spring的AOP通过动态代理实现。通过动态代理,可以增强方法,如事务管理,添加日志等

    (小菜鸟的学习记录)

  • 相关阅读:
    如何学习新技术
    创建模式之工厂方法模式
    SQL Server 存储过程
    ASP.NET Cache的一些总结
    ACE_TSS研究
    利用Thunk让C++成员函数变回调函数
    ACE内存映射学习
    ACE的初始化
    双检锁模式学习
    ACE_Task笔记
  • 原文地址:https://www.cnblogs.com/mySerilBlog/p/8424202.html
Copyright © 2011-2022 走看看