SSM9.1【Spring:面向切面编程AOP-Spring的AOP简介】
2021/7/21 22:07:39
本文主要是介绍SSM9.1【Spring:面向切面编程AOP-Spring的AOP简介】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述
JDK的动态代理
1 package com.haifei.proxy.jdk; 2 3 /** 4 * 目标类接口 5 */ 6 public interface TargetInterface { 7 8 public void save(); 9 10 }
1 package com.haifei.proxy.jdk; 2 3 /** 4 * 目标类 5 */ 6 public class Target implements TargetInterface{ 7 8 @Override 9 public void save() { 10 System.out.println("save running..."); 11 } 12 13 }
1 package com.haifei.proxy.jdk; 2 3 /** 4 * 增强类 5 */ 6 public class Advice { 7 8 public void before(){ 9 System.out.println("前置增强。。。"); 10 } 11 12 public void after(){ 13 System.out.println("后置增强。。。"); 14 } 15 16 }
1 package com.haifei.proxy.jdk; 2 3 import java.lang.reflect.InvocationHandler; 4 import java.lang.reflect.Method; 5 import java.lang.reflect.Proxy; 6 7 /** 8 * JDK 的动态代理-测试类 9 * 10 * 动态代理参考: 11 * JavaWeb19.6【Filter&Listener:利用设计模式之代理模式增强对象的功能】 12 * https://www.cnblogs.com/yppah/p/14974136.html 13 */ 14 public class ProxyTest { 15 16 public static void main(String[] args) { 17 //目标对象 18 final Target target = new Target(); 19 //增强对象 20 final Advice advice = new Advice(); 21 22 //获取动态生成的代理对象 23 TargetInterface proxy = (TargetInterface)Proxy.newProxyInstance( 24 target.getClass().getClassLoader(), //目标对象类加载器 25 target.getClass().getInterfaces(), //目标对象相同的接口字节码对象数组 26 new InvocationHandler() { 27 //调用代理对象的任何方法 实质执行的都是invoke方法 28 @Override 29 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { 30 advice.before(); //前置增强 31 Object invoke = method.invoke(target, args); //执行目标方法 32 advice.after(); //后置增强 33 return invoke; 34 } 35 } 36 ); 37 38 //调用代理对象的方法 39 proxy.save(); 40 } 41 /* 42 前置增强。。。 43 save running... 44 后置增强。。。 45 */ 46 47 }
cglib动态代理
这篇关于SSM9.1【Spring:面向切面编程AOP-Spring的AOP简介】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用