`
sosyi
  • 浏览: 64644 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

动态代理 实例

 
阅读更多
以安全性检查为例子:

首先创业一个 业务类 实现该业务接口:

public class UserMangerImpl implements UserManager {

	public void addUser(String name, String pws) {
      System.out.println("------------执行添加方法()-------------"+name);
	}

	public void deleteUser(Integer id) {
       System.out.println("--------------执行删除方法()-------------------");
	}

	public String finUserByid(Integer id) {
		System.out.println("----------------执行查询方法()-------------------");
		return null;
	}


创建 代理类:

public class SecurityHandler implements InvocationHandler {

	private Object targetObject;  //目标对象
	
	public Object newProxy(Object targetObject){
		this.targetObject=targetObject;
		return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),
				                      targetObject.getClass().getInterfaces(),
				                       this);
	}
	
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		chickSecurity();
		Object obj=null;
		try{
			obj=method.invoke(this.targetObject, args);
		}catch(Exception e){
			e.printStackTrace();
		}
		return obj;
	}

	public void chickSecurity(){
		System.out.println("--------安全检查!()----------");
	}

测试类
public static void main(String[] args) {
		SecurityHandler hander=new SecurityHandler();
		UserManager user=(UserManager) hander.newProxy(new UserMangerImpl());
		user.addUser("aaaaaaaaa", "vvv");
		user.finUserByid(1);
	}


测试结果
--------安全检查!()----------
------------执行添加方法()-------------aaaaaaaaa
--------安全检查!()----------
----------------执行查询方法()-------------------
分享到:
评论

相关推荐

    java动态代理实例

    在这个实例中,我们将深入探讨Java动态代理的核心概念,以及如何利用它来实现拦截器模式。 首先,我们需要了解Java动态代理的基本原理。在Java中,动态代理主要通过`java.lang.reflect.Proxy`类和`java.lang....

    动态代理例子

    3. **创建动态代理实例**: - 首先,你需要有一个接口,这个接口定义了代理对象需要实现的所有方法。 - 然后,创建一个实现InvocationHandler接口的类,重写invoke()方法。 - 最后,使用Proxy.newProxyInstance()...

    3个动态代理实例

    下面我们将深入探讨三个动态代理的实例,这些实例将帮助我们更好地理解这个概念。 首先,我们来看第一个实例——`TestDynamicProxy`。在这个例子中,我们可能会看到如何使用Java的`java.lang.reflect.Proxy`类来...

    java 动态代理实例(JDK代理与CGLIB代理)

    3. **生成代理对象**:使用`Proxy.newProxyInstance()`方法,传入类加载器、目标对象实现的接口列表以及之前创建的`InvocationHandler`实例,生成代理对象。 4. **调用代理对象的方法**:通过代理对象调用方法时,...

    Java反射和动态代理实例

    几个Java反射和动态代理的小例子。可以学习如何通过Java的反射机制实例化对象、调用对象的方法、操作对象的私有成员变量、改变数组中的某项的值、改变数组大小等;可以学习Java的动态代理模式、学习Java工厂模式以及...

    JDK动态代理和Cglib动态代理实例源码

    本篇将详细探讨JDK动态代理和Cglib动态代理,并通过源码实例来加深理解。 首先,JDK动态代理是Java内置的一种机制,它依赖于`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口。`Proxy`类...

    java动态代理实例aop

    `Proxy`类用于创建一个实现了指定接口的动态代理类的实例,而`InvocationHandler`接口则定义了对代理对象方法调用的处理方式。 首先,我们来理解一下`InvocationHandler`。这个接口有一个核心方法`invoke()`: ```...

    java反射和动态代理实例

    Java反射和动态代理是Java编程中的高级特性,它们在实际开发中有着广泛的应用。反射机制允许我们在运行时检查类、接口、字段和方法的信息,甚至能够动态调用方法和修改对象的状态。动态代理则是在运行时创建一个实现...

    JAVA动态代理实例

    在Java编程语言中,动态代理是一种强大的特性,它允许我们在运行时创建代理对象来扩展或增强其他对象的功能。这个特性通常用于实现AOP(面向切面编程)或者为已有接口提供额外的服务,如日志、事务管理等。下面我们...

    Java中动态代理的介绍及实例

    3. **创建动态代理实例**:通过动态代理类的构造函数或`newProxyInstance()`方法,传入`InvocationHandler`实例,创建动态代理实例。 #### 四、动态代理实例演示 示例代码展示了如何使用JDK动态代理创建一个代理...

    浅谈JDK动态代理与CGLIB代理去区别

    在Java开发中,动态代理和CGLIB代理是两种常见的面向切面编程(AOP)实现方式,它们都用于在不修改原有代码的情况下,增强或扩展对象的功能。本篇文章将深入探讨JDK动态代理和CGLIB代理的区别,以及它们在实际应用中...

    java动态代理实例(jdk动态代理和cglib)

    Java动态代理是Java编程中一个重要的特性,它允许我们在运行时创建对象的代理,从而可以在调用实际方法之前和之后添加额外的行为。本篇将深入探讨两种主要的Java动态代理技术:JDK动态代理和CGLIB。 首先,我们来...

    Spring定时器与动态代理实例

    这个实例将深入探讨如何利用Spring来创建和管理定时任务,并结合动态代理技术来增强功能。我们将从以下几个方面进行讲解: 1. **Spring定时任务基础** - **Spring Task**:Spring Task是Spring框架中的一个模块,...

    一个简单的java动态代理的实例

    在这个简单的Java动态代理实例中,我们将探讨如何利用这两个核心组件来实现代理功能。 首先,我们需要理解代理模式的基本概念。代理模式是一种设计模式,它为其他对象提供一种代理以控制对这个对象的访问。在Java中...

    JDK动态代理简单示例

    JDK动态代理是Java编程中一个非常重要的特性,它允许我们在运行时创建具有特定接口的代理类实例。这种技术在很多场景下都非常有用,比如在AOP(面向切面编程)中实现方法拦截、日志记录、事务管理等。下面我们将深入...

    java 动态代理 简单实例

    Java动态代理是Java语言提供的一种在运行时创建代理对象的技术,它允许我们为已存在的接口创建代理类,以便在调用方法时添加额外的功能或控制。动态代理在很多场景下非常有用,比如日志记录、性能监控、事务管理等。...

    动态代理和cglib例子

    动态代理和CGLIB在Java开发中扮演着重要的角色,特别是在实现面向切面编程(AOP)和增强对象功能方面。动态代理允许我们在不修改原始代码的情况下,为已有对象添加额外的功能,比如日志记录、性能监控等。而CGLIB...

    Java 注解+动态代理的一个实例

    ### Java 注解+动态代理实例解析 #### 一、引言 在Java开发中,**动态代理**是一种非常实用的设计模式,它可以帮助我们实现在不修改原有代码的基础上为对象添加额外的功能,比如日志记录、权限校验等。而**注解**则...

    spring 的动态代理详解

    #### 动态代理实例演示 下面通过一个简单的示例来展示动态代理的创建过程: ```java public class MyInvocationHandler implements InvocationHandler { private Object target; public MyInvocationHandler...

    静态代理和动态代理简单实现代码

    使用 `Proxy.newProxyInstance()` 可以生成一个动态代理实例。 总结来说,静态代理和动态代理都是为了在调用对象方法时添加额外的行为,但静态代理需要预先定义代理类,而动态代理可以在运行时动态创建代理对象。在...

Global site tag (gtag.js) - Google Analytics