`
a25765339
  • 浏览: 62534 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一句话概括 java 动态代理

 
阅读更多
概括:想要在调用UserSvc的所有方法时,在每个方法前或后都做一些处理,又不想修改实现类,或无法修改实现类的情况下,使用动态代理模式。

接口:
public interface UserSvc {
	public void getUserInfo();
	public void CreateUser();
}

实现类:
public class UserSvcImpl implements UserSvc{

	@Override
	public void getUserInfo() {
		System.out.println("get user info.");
	}

	@Override
	public void CreateUser() {
		System.out.println("create a new user.");
	}

}


动态代理类:(除了你希望的处理细节,这个类的其他地方基本不用改,直接拿来用就行了)
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class UserProxy implements InvocationHandler {

	Object obj = null;

	public Object bind(Object obj) {
		this.obj = obj;
		return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj
				.getClass().getInterfaces(), this);
	}

	@Override
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		System.out.println("执行被代理的类的方法前,我要做一些处理。");
		method.invoke(this.obj, args);
		System.out.println("执行被代理的类的方法后,我还要做一些处理。");
		System.out.println("");
		return null;
	}

}


测试类:

public class Test {
	public static void main(String[] args) {
		UserProxy proxy = new UserProxy();
		UserSvc userSvc = (UserSvc) proxy.bind(new UserSvcImpl());
		userSvc.getUserInfo();
		userSvc.CreateUser();
	}
}


输出结果:
执行被代理的类的方法前,我要做一些处理。
get user info.
执行被代理的类的方法后,我还要做一些处理。

执行被代理的类的方法前,我要做一些处理。
create a new user.
执行被代理的类的方法后,我还要做一些处理。


分享到:
评论

相关推荐

    云计算 物联网 智慧城市 数字城市详细定义与一句话概括

    **一句话概括:** 云计算让用户能够通过互联网随时获取或选购所需的资源与服务。 ### 物联网 **详细定义:** 物联网(Internet of Things, IoT)是指通过各类信息传感设备(如RFID、红外感应器、GPS等),将物理...

    java资料分享概括

    java资料分享概括

    一句话概括280部国学经典.doc

    【标题】:一句话概括280部国学经典 【描述】:该文档提供了一句话精炼概述280部重要的中国国学经典,涵盖了十三经、其他古代文献、二十六史以及各种别杂史和野史。 【标签】:国学经典、十三经、历史文献、古代...

    java面向对象要点概括

    Java是一种广泛使用的面向对象编程语言,其核心特性包括封装、继承、多态和抽象等概念。下面是对这些关键面向对象概念的详细解释。 1. **封装**:封装是面向对象编程的基本原则之一,它指的是将数据(属性)和操作...

    PMBOK第6版ITTO汇总+重点标准+每个ITTO的一句话概括

    为了方便记忆和复习,对每个ITTO进行一句话概括,可以帮助考生快速回顾和巩固项目管理的核心概念。 例如: - 制定项目章程:确立项目、相关方和基本目标。 - 制定项目管理计划:协调所有子计划,形成文档化的项目...

    一张图片概括java虚拟机的概况

    一张图片概括java虚拟机的概况

    动态编译字符串成java,并且添加class到jvm

    在Java编程中,动态编译字符串成Java代码并将其加载到JVM(Java虚拟机)是一种高级技巧,常用于运行时代码生成、元编程或插件系统等场景。这一技术的核心在于利用Java的反射API和Java Compiler API。下面将详细阐述...

    爬虫结果:一句话、优美句子素材.7z

    标签“一句话素材”是对压缩包内容的简洁概括,表明文件包含的都是单行式的文字素材,可能是短语、格言、诗句或者是简短的智慧语录。 压缩包内的文件“一句话素材.sql”和“一句话素材.txt”提供了这些素材的两种...

    通过url网址下载图片,可以选择有代理下载,也可以选择无代理下载

    标签“java url 代理 下载图片”概括了本文讨论的主题。在实际应用中,你可能需要处理各种异常情况,例如网络连接问题、权限问题等。此外,你还可以考虑优化下载过程,比如使用多线程、缓存策略等,以提高效率和用户...

    在高考试题中用一句话或规定的字数概括新闻或简讯的内容PPT学习教案.pptx

    在高考试题中用一句话或规定的字数概括新闻或简讯的内容PPT学习教案.pptx

    java集合面试题 全概括

    java集合面试题 全概括

    三年级抓关键句概括段意PPT教案.pptx

    - 其次寻找关键句,这可能是概括性强或具有代表性的一句话。 - 最后根据关键句总结段落大意,必要时可能需要对关键句进行适当的改造。 4. 示例练习: - 短文二(秋天景色):关键句“家乡秋天的景色可美啦!”...

    第一章 初次接触JAVA.ppt

    Java的哲学可以概括为“一次编写,到处运行”,这得益于其运行在Java虚拟机(JVM)上的特性,使得Java程序能在任何支持JVM的平台上执行,无需重新编译。 Java语言有以下显著特点: 1. 简单:Java简化了C++的一些...

    如何写好一句话新闻.pptx

    在新闻行业中,一句话新闻是一种简洁、精准的新闻摘要形式,它要求在有限的文字内概括出新闻的核心内容。南通中学的徐大宁老师分享了关于撰写一句话新闻的一些关键要点。 首先,理解新闻的基本要素至关重要。广义的...

    java前景论文 a态与前景一记

    会议的主题被概括为“通过Java的培训来带动Java软件的开发,进而促进基于Java技术的研究工作,最终达到发展生产力、获取高额利润、提高生活质量的目的”。 #### 二、会内外几大公司的动态 ##### 1. Microsoft的...

    Java基础知识点概括

    1.阐述 Java 7 和 Java 8 的区别 2.Java SE 8中最流行和最著名的最新功能是什么? 3.是什么使Java SE 8优于其他? 4.在Java SE 8中定义Lambda表达式? 5.为什么将Lambda Expression创造为代码块? 6.Lambda表达式和...

    java学习心得体会

    "Java学习之路:不走弯路,就是捷径"这句话,恰如其分地概括了学习Java的关键——找到正确的方法,避免不必要的困扰。 首先,理解基础是至关重要的。Java的基础包括语法、数据类型、变量、运算符、控制结构等。这些...

    java入门基础总结概括

    学习方法: 1.记笔记 2.动手写代码 3.代码需要加注释 4.不懂就问 5.上课一定要互动

    Java实验报告(概括了Java及面向对象的相关内容)

    第一章:Java语言基础 本章主要介绍Java语言的基本语法,包括变量、数据类型、运算符、流程控制语句(如if-else、for、while循环)以及方法的定义与调用。学生将学习如何编写简单的Java程序,并了解如何在控制台进行...

    Java-Basics

    9. **动态性**:Java支持按需加载类,这意味着程序可以根据需要动态地加载必要的类,而不是一开始就加载所有类。 10. **高性能**:随着即时编译器(JIT Compiler)的发展以及先进的内存管理技术,Java程序的性能得到...

Global site tag (gtag.js) - Google Analytics