`
JadeLuo
  • 浏览: 425742 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Java动态代理(Spring Aop原理)

    博客分类:
  • java
 
阅读更多
import java.lang.reflect.InvocationHandler ;
import java.lang.reflect.Proxy ;
import java.lang.reflect.Method ;
interface Subject{
	public String say(String name,int age) ;	// 定义抽象方法say
}
class RealSubject implements Subject{	// 实现接口
	public String say(String name,int age){
		return "姓名:" + name + ",年龄:" + age ;
	}
};
class MyInvocationHandler implements InvocationHandler{
	private Object obj ;
	public Object bind(Object obj){
		this.obj = obj ;	// 真实主题类
		return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this) ;
	}
	public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
		Object temp = method.invoke(this.obj,args) ;	// 调用方法
		return temp ;
	}
};
public class DynaProxyDemo{
	public static void main(String args[]){
		Subject sub = (Subject)new MyInvocationHandler().bind(new RealSubject()) ;
		String info = sub.say("李兴华",30) ;
		System.out.println(info) ;
	}
};

 

分享到:
评论

相关推荐

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    Spring AOP支持不同的代理策略,包括JDK动态代理和CGLIB代理。如果被代理的类没有实现接口,Spring AOP会采用CGLIB来生成代理对象。CGLIB(Code Generation Library)是一个开源的代码生成库,它允许运行时在内存中...

    JDK动态代理 spring aop 的原理

    现在让我们深入探讨JDK动态代理和Spring AOP的原理。 首先,JDK动态代理基于Java的反射机制,通过`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口来实现。Proxy类用于创建一个代理对象,...

    反射实现 AOP 动态代理模式(Spring AOP 的实现 原理) - Java 例子 -

    Spring框架是Java中实现AOP的一个流行工具,它通过动态代理机制实现了这一功能。本文将深入探讨Spring AOP的实现原理,以及如何使用反射来实现动态代理模式。 首先,我们需要了解AOP的基本概念。AOP的核心思想是切...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)...对于希望深入了解Spring AOP原理与实践的读者来说,掌握以上概念将是开启面向方面编程之旅的第一步。

    使用动态代理演示Spring的AOP编程原理

    为了说明Spring的AOP原理,本人使用代理模式中的动态代理完成演示AOP编程的原理的演示。相信,如果你耐心看完整个程序(几乎一行注释一行代码),那么你对Spring这个东西就不是觉得有什么神秘了! 阅读对象:凡是喜爱...

    动态代理和AOP详解

    在提供的源码文件中,可能包含了示例代码,如自定义的`InvocationHandler`实现、切点定义、通知配置等,你可以通过这些例子深入理解动态代理和Spring AOP的工作原理。 总结起来,动态代理和Spring AOP是Java和...

    通过动态代理模拟Spring AOP

    总的来说,通过Java的动态代理模拟Spring AOP可以帮助我们理解AOP的基本原理,并在实际项目中实现一些简单的切面逻辑。然而,对于更复杂的需求,如跨越多个方法的事务管理,Spring AOP提供了更全面的解决方案。熟悉...

    Spring Aop的底层实现技术 --- Jdk动态代理原理

    Spring AOP 的底层实现技术 --- Jdk 动态代理原理 JDK 动态代理是 Spring AOP 的底层实现技术,允许开发者在运行期创建接口的代理实例。在 JDK 1.3 以后,JDK 动态代理技术提供了实现 AOP 的绝好底层技术。JDK 动态...

    死磕Spring之AOP篇 - Spring AOP两种代理对象的拦截处理(csdn)————程序.pdf

    Spring 使用 `java.lang.reflect.Proxy` 类来创建动态代理,并通过实现 `java.lang.reflect.InvocationHandler` 接口来处理代理对象的方法调用。在 Spring AOP 中,`org.springframework.aop.framework....

    Spring AOP实现机制

    Spring AOP主要通过两种方式实现:JDK动态代理和CGLIB代理。 - **JDK动态代理**: - 当目标对象实现了至少一个接口时,Spring会使用JDK的java.lang.reflect.Proxy类创建一个代理对象。 - 代理对象在调用实际方法...

    java-用Java动态代理实现AOP.pdf

    通过这些知识点,可以看出文档主要围绕Java动态代理的原理及其在AOP中的应用展开,同时也对比了Spring AOP这一更为强大的AOP框架。通过理解这些概念,开发者可以有效地利用Java动态代理技术来实现AOP,以提升代码的...

    Java spring AOP源码

    Spring AOP使用两种主要的代理技术:JDK动态代理和CGLIB动态代理。JDK动态代理适用于接口的场景,而CGLIB则用于没有实现接口的情况。在这两种情况下,代理对象都会持有目标对象的引用,并在其上调用方法。具体来说:...

    spring ioc和aop原理流程图(详细)

    6. **代理(Proxy)**:Spring AOP通过动态代理实现切面的织入。对于接口,使用JDK动态代理;对于非接口类,使用CGLIB动态代理。 Spring的IOC和AOP机制使得开发者能够更专注于业务逻辑,而不是繁琐的依赖管理和横切...

    简单spring aop 例子

    1. **代理**:Spring AOP支持两种类型的代理:JDK动态代理和CGLIB代理。JDK代理用于实现了接口的类,而CGLIB代理则用于没有接口或不希望使用接口的类。代理对象在调用目标方法时会执行切面逻辑。 2. **织入**:织入...

    Java进阶之SpringAOP源码深度剖析共17页.pd

    这份文档旨在帮助Java开发者更深入地理解Spring AOP的原理和实现,从而提升在实际开发中的应用能力。Spring AOP作为Spring框架的核心组件,是面向切面编程(Aspect-Oriented Programming)在Java世界中的重要实践,...

    java 动态代理实现,模拟spring aop

    Java动态代理是Java提供的一种在运行时创建代理对象的技术,它是实现类似Spring AOP(面向切面编程)功能的关键机制之一。...但是,理解Java动态代理的底层原理对于深入理解Spring AOP的工作方式是非常有益的。

    SpringAOP之探秘(动态代理、责任链模式、注解使用)

    学习这些示例,你可以更深入地理解Spring AOP的工作原理,掌握如何使用动态代理和责任链模式来编写切面,以及如何通过注解简化AOP的配置和使用。这些知识对于任何涉及Spring框架的开发者来说都是至关重要的,因为...

    Java进阶之SpringAOP应用共16页.pdf.zi

    本资料"Java进阶之SpringAOP应用共16页.pdf"深入探讨了Spring AOP在实际开发中的应用和实现原理,旨在提升Java开发者的技能水平。 首先,理解AOP的基本概念至关重要。AOP是一种编程范式,它将关注点分离为不同的...

Global site tag (gtag.js) - Google Analytics