Hadoop技术内幕HDFS-笔记5之动态代理

1.1.  java动态代理

java.lang.reflect包下的Proxy(创建代理对象)和InvocationHandler(调用转发)两个类

代理对象代表目标对象(target)执行相应的活动

静态代理:代理对象实现目标对象一致的接口,实现代理接口和调用转发 (不推荐使用)

在调用前后的附加逻辑,体现了代理对象的价值

代码示例:

1、	java动态代理接口

package proxy;

public interface BookDAO {
	//增加图书的实现
	public void addBook();
}

2、	创建实现类(目标类)

package proxy;

public class BookDAOImpl implements BookDAO {

	@Override
	public void addBook() {
		// TODO Auto-generated method stub
		System.out.println("增加图书的实现方法....");
	}
}
3、	创建代理类

package proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

//JDK动态代理类实现
public class BookDAOProxy implements InvocationHandler{

	//实际代理对象
	private Object target;

	//绑定委托对象并返回一个代理类
	public Object bind(Object target){
		this.target = target;
		//取得代理对象
		//要绑定接口(这是一个缺陷,cglib弥补了这一缺陷)
		return Proxy.newProxyInstance(
				this.getClass().getClassLoader(),
				this.target.getClass().getInterfaces(),
				this);
	}

	@Override
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		// TODO Auto-generated method stub
		Object result = null;
		System.out.println("事务开始处理...");
		//执行方法
		result = method.invoke(target, args);
		System.out.println("事务结束处理...");
		return result;
	}
}
4、	测试类:

package proxy;

public class BookTest {

	public static void main(String[] args) {
		//获得一个动态代理类
		BookDAO proxy = (BookDAO) new BookDAOProxy().bind(new BookDAOImpl());
		//调用代理类的方法
		proxy.addBook();
	}
}

1.1.  java NIO(自行研究)

涉及网络编程

Hadoop技术内幕HDFS-笔记5之动态代理

时间: 2024-10-12 10:43:17

Hadoop技术内幕HDFS-笔记5之动态代理的相关文章

2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj

Hadoop技术内幕HDFS-笔记11之HDFS

Hdfs文件系统,提供了一套基于hadoop的抽象文件系统的API,支持以流的方式访问文件系统中的数据. 特性: 1.  支持超大文件 2.  检测和快速应对硬件故障(故障检测和自动恢复) 3.  流式数据访问,注重的是数据的吞吐量,而不是数据的响应速度 4.  简化的一致性模型,一次写入,多次读取. 不适合: 5.  低延迟数据访问,和用户的实时交互,由于hadoop对高数据吞吐量进行了优化,而牺牲了数据的延迟,对于低延迟访问,可以考虑hbase或cassandra 1.1.1.       

Hadoop技术内幕HDFS-笔记2

任何一个复杂的软件系统,为了提高其适应性和扩展性,一般都会有一个配置模块或者配置系统,作完成其扩展.定制的手段和方式. 1.1.  Windows的配置文件 (第一次知道这事啊): 采用的是ini后缀的文本文件,可通过动态链接库提供方法进行处理. 初始化文件或profile概要文件 1.2.  Java配置文件: Properties文件 Xml文件 工具:Apache Commons Configuration 用于对配置文件进行常用的操作. Hadoop configuration Hado

Hadoop技术内幕HDFS-笔记1

书籍学习——董西成<Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理> HDFS 高容错,高伸缩性 Lucene是引擎开发包,提供了一个纯java的高性能全文检索,可方便的嵌入到各种应用中实现全文搜索/索引功能. Nutch是以Lucene为基础实现的搜索引擎应用,Lucene为Nutch提供了文本搜索和索引的Api,Nutch不光有搜索功能,还有数据抓取的功能,却无法支持拥有数亿网页的网络(在网络抓取和索引过程中产生的大量文件存储需求). Hadoop优势

Hadoop技术内幕HDFS-笔记10之hadoop IO

1.1.1. hadoop IO 对比Java IO即可 FSDataInputStream,FSDataOutputStream 为抽象类, FSInputStream抽象类 1.1.2. hadoop文件系统中的权限 枚举类FsAction定义了rwx权限,常量 建议使用get()方法获取文件系统对象,而不是newInstance() 1.1.3. hadoop 协议处理器(会用即可) 获取HDFS上的资源,必须安装协议处理系统 后面通过获取的in IO流操作就是普通的操作形式了. Hado

Hadoop技术内幕:深入解析YARN架构设计与实现原理pdf

下载地址:网盘下载 <Hadoop技术内幕:深入解析MapReduce架构设计与实现原理>内容简介:"Hadoop技术内幕"共两册,分别从源代码的角度对"Common+HDFS"和"MapReduce的架构设计和实现原理"进行了极为详细的分析.<Hadoop技术内幕:深入解析MapReduce架构设计与实现原理>由Hadoop领域资深的实践者亲自执笔,首先介绍了MapReduce的设计理念和编程模型,然后从源代码的角度深入

hadoop技术内幕-序列化与压缩(一)

一.java内建序列化机制 java序列化机制将对象转换为连续的byte数据,这些数据可以在日后还原为原先的对象状态,还能自动处理不同操作系统上的差异,也不用担心字节排列次序. java的类实例可被序列化只要在类声明中加入implements Serializable即可.Serializable接口是一个标志,不具有任何成员函数. java的序列化会自动访问对象的父类,以保证对象内容的一致性.序列化的结果中包含了大量与类相关的信息(包括版本号.类描述信息.类的版本ID.父类等).在这个过程中序

Hadoop技术内幕——Hadoop配置信息处理

配置系统是复杂软件必不可少的一部分,org.apache.hadoop.conf.Configuration在Hadooop各个子项目中发挥着重要作用. windows系统广泛使用一种特殊批的ASCII文件.ini作为其主要配置文件标准,被称为(Initialization File)或概要文件(profile):java中JDK提供了java.util.Properties类处理简单的配置文件.而Hadoop采用自己独有的配置文件管理系统. Hadoop的配置文件的根元素是configurat

【转】COM技术内幕(笔记)

COM技术内幕(笔记) COM--到底是什么?--COM标准的要点介绍,它被设计用来解决什么问题?基本元素的定义--COM术语以及这些术语的含义.使用和处理COM对象--如何创建.使用和销毁COM对象.基本接口--描述IUnknown基本接口及其方法. 掌握串的处理--在COM代码中如何处理串.应用COM技术--例子代码,举例说明本文所讨论的所有概念. 处理HRESULT--HRESULT类型描述,如何监测错误及成功代码.COM--到底是什么? 简单地说,COM是一种跨应用和语言共享二进制代码的