接口

public interface UserService {void addUser();void updateUser();
}

接口的实现类

public class UserServiceImpl implements UserService {@Overridepublic void addUser() {System.out.println("adduser...");}@Overridepublic void updateUser() {System.out.println("updateUser...");}}

切面

public class MyAspect {public void before(){System.out.println("事务开启");}public void after(){System.out.println("事务开启");}
}

工厂类,创建代理类

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class BeanFactory {public static  UserService createProxyService(){final UserService userService = new UserServiceImpl();final MyAspect myAspect = new MyAspect();UserService userServiceProxy = (UserService)Proxy.newProxyInstance(BeanFactory.class.getClassLoader(),userService.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {myAspect.before();Object res = method.invoke(userService, args);myAspect.after();return res;}});return userServiceProxy;}}

测试类

import org.junit.Test;public class TestProxy {@Testpublic void test(){UserService us = BeanFactory.createProxyService();us.addUser();us.updateUser();}
}

spring18-1:采用jdk的动态代理 proxy。相关推荐

  1. JDK的动态代理深入解析(Proxy,InvocationHandler)(转)

    一.什么是动态代理 动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实.代理一般会实现它所表示的实际对象的接口.代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际 ...

  2. cglib动态代理jar包_代理模式详解:静态代理+JDK/CGLIB 动态代理实战

    1. 代理模式 代理模式是一种比较好的理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标 ...

  3. 动态代理proxy与CGLib的区别

    转载自 动态代理proxy与CGLib的区别 昨天被人问及动态代理与CGlib的区别,赶紧回顾一下: 什么是代理? 静态代理与动态代理 静态代理实例 JDK动态代理实例 CGLib 简介 CGLib ...

  4. 4、MyBatis + Log4j日志查看Sql参数、结果集元数据、Mapper代理开发、JDK的动态代理与CGLib代理

    文章目录 MyBatis优化开发 日志 ResultSet如何转换为Java对象 数据库元数据 结果集元数据 Fastjson 基于MyBatis的DAO开发(传统) 推荐mapper代理开发 JDK ...

  5. SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP

    静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...

  6. 【java】深入分析Java反射-动态代理 proxy

    1.概述 转载:深入分析Java反射(四)-动态代理 [Java]Java 反射机制浅析 [Java]java代理 静态代理 动态代理 proxy [java]静态代理 proxy 2.动态代理的简介 ...

  7. 用通俗易懂的语言去解释JDK的动态代理

    读完本篇文章将会了解以下问题 1.代理模式的定义和目的 2.JDK的动态代理的整体流程 3.代理对象帮我们做了什么 4.为什么JDK的动态代理是基于接口的代理(继承为什么不行) 5.生成代理实例化对象 ...

  8. jdk动态代理proxy

    目录 jdk和cglib区别 以下案例: 定义共同行为接口 被代理类(目标类) jdk动态代理类-动态生成代理类和被代理方法的调用 解析动态生成的代理类$Proxy0.class 静态代理需要自己实现 ...

  9. 代理详解 静态代理+JDK/CGLIB 动态代理实战

    1. 代理模式 代理模式是一种比较好理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对 ...

最新文章

  1. leetcode Edit Distance
  2. 五、spring boot整合mybatis-plus
  3. OpenCV+yolov3实现目标检测(C++,Python)
  4. stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
  5. [css] 使用纯css能否监控到用户的一些信息?怎么实现?
  6. oracle数据库内容替换,国产数据库能否替换oracle数据库?
  7. 数据结构c语言版第二版(严蔚敏)第一章笔记
  8. java后端主要做什么_java后端开发需要学什么
  9. linux安装ralink驱动程序,Linux 安装 FW150UM/RALINK 无线网卡
  10. 〖Python自动化办公篇⑰〗- PPT 文件自动化 - PPT 插入表格与图片
  11. android录制屏幕接口,ARDC Android 远程桌面助手 录屏 演示 MD
  12. 2023年天津仁爱学院专升本考试考务费网上缴费的通知
  13. 量子力学第十一弹——变分法
  14. 数据标注软件labelme详解
  15. Word标题格式、毕业论文格式、标题、引用目录
  16. 75行代码 完美实现图片完整展示 flex 横向瀑布流布局
  17. 带联网功能的RFID宿舍门禁(六)-两年后的再次总结
  18. 微软进军杀毒软件市场
  19. VMWare虚拟机安装WIN10系统【21H1长效稳定专业版】【图文详细教程】
  20. Android NDK 获取手机部分信息 build.prop

热门文章

  1. C++11 (多线程)并发编程总结
  2. Matlab图像处理教程
  3. HDU 4850 Wow! Such String! 【欧拉回路】【一顿乱构造】
  4. (HDU)1056 --HangOver( 悬住)
  5. Centos Openldap服务器数据库主备(二)
  6. (转)CentOS 5.5 64bit 编译安装Adobe FlashMediaServer 3.5
  7. Java中多线程概念详解
  8. malloc/new函数及malloc()的一种简单原理性实现
  9. 解决fstream不能打开带有中文路径文件的问题
  10. 采用Huffman编码进行数据压缩