spring18-1:采用jdk的动态代理 proxy。
接口
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。相关推荐
- JDK的动态代理深入解析(Proxy,InvocationHandler)(转)
一.什么是动态代理 动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实.代理一般会实现它所表示的实际对象的接口.代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际 ...
- cglib动态代理jar包_代理模式详解:静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好的理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标 ...
- 动态代理proxy与CGLib的区别
转载自 动态代理proxy与CGLib的区别 昨天被人问及动态代理与CGlib的区别,赶紧回顾一下: 什么是代理? 静态代理与动态代理 静态代理实例 JDK动态代理实例 CGLib 简介 CGLib ...
- 4、MyBatis + Log4j日志查看Sql参数、结果集元数据、Mapper代理开发、JDK的动态代理与CGLib代理
文章目录 MyBatis优化开发 日志 ResultSet如何转换为Java对象 数据库元数据 结果集元数据 Fastjson 基于MyBatis的DAO开发(传统) 推荐mapper代理开发 JDK ...
- SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP
静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...
- 【java】深入分析Java反射-动态代理 proxy
1.概述 转载:深入分析Java反射(四)-动态代理 [Java]Java 反射机制浅析 [Java]java代理 静态代理 动态代理 proxy [java]静态代理 proxy 2.动态代理的简介 ...
- 用通俗易懂的语言去解释JDK的动态代理
读完本篇文章将会了解以下问题 1.代理模式的定义和目的 2.JDK的动态代理的整体流程 3.代理对象帮我们做了什么 4.为什么JDK的动态代理是基于接口的代理(继承为什么不行) 5.生成代理实例化对象 ...
- jdk动态代理proxy
目录 jdk和cglib区别 以下案例: 定义共同行为接口 被代理类(目标类) jdk动态代理类-动态生成代理类和被代理方法的调用 解析动态生成的代理类$Proxy0.class 静态代理需要自己实现 ...
- 代理详解 静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对 ...
最新文章
- leetcode Edit Distance
- 五、spring boot整合mybatis-plus
- OpenCV+yolov3实现目标检测(C++,Python)
- stackoverflow_Stackoverflow:您尚未发现的7个最佳Java答案
- [css] 使用纯css能否监控到用户的一些信息?怎么实现?
- oracle数据库内容替换,国产数据库能否替换oracle数据库?
- 数据结构c语言版第二版(严蔚敏)第一章笔记
- java后端主要做什么_java后端开发需要学什么
- linux安装ralink驱动程序,Linux 安装 FW150UM/RALINK 无线网卡
- 〖Python自动化办公篇⑰〗- PPT 文件自动化 - PPT 插入表格与图片
- android录制屏幕接口,ARDC Android 远程桌面助手 录屏 演示 MD
- 2023年天津仁爱学院专升本考试考务费网上缴费的通知
- 量子力学第十一弹——变分法
- 数据标注软件labelme详解
- Word标题格式、毕业论文格式、标题、引用目录
- 75行代码 完美实现图片完整展示 flex 横向瀑布流布局
- 带联网功能的RFID宿舍门禁(六)-两年后的再次总结
- 微软进军杀毒软件市场
- VMWare虚拟机安装WIN10系统【21H1长效稳定专业版】【图文详细教程】
- Android NDK 获取手机部分信息 build.prop
热门文章
- C++11 (多线程)并发编程总结
- Matlab图像处理教程
- HDU 4850 Wow! Such String! 【欧拉回路】【一顿乱构造】
- (HDU)1056 --HangOver( 悬住)
- Centos Openldap服务器数据库主备(二)
- (转)CentOS 5.5 64bit 编译安装Adobe FlashMediaServer 3.5
- Java中多线程概念详解
- malloc/new函数及malloc()的一种简单原理性实现
- 解决fstream不能打开带有中文路径文件的问题
- 采用Huffman编码进行数据压缩