asm 与 cglib(整理的)】的更多相关文章

参考博客地址 http://www.oseye.net/user/kevin/blog/304#top http://www.blogjava.net/vanadies10/archive/2011/02/23/344899.html http://llying.iteye.com/blog/220452 http://www.cnblogs.com/liuling/archive/2013/05/21/CGlib-AOP.html 1 asm简介 ASM是一个Java字节码操纵框架,它能被用来…
转载自http://www.iteye.com/topic/98178   一.Java ClassLoader 1,什么是ClassLoader 与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类. 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存.ClassLoader 是 JVM 中将类装入内存的那部分. 而且,Java ClassLoader 就是用 Java 语言编写的.这意味着创建您自…
简介 本文主要整理一些Spring & SpringBoot应用时和相关原理的知识点,对于源码不做没有深入的讲解. 1. 思维导图 右键新窗口打开可以放大. 说明 使用@Configuration在java代码中声明一个bean--而不是使用xml--实际上很早就有了(至少在<Spring实战(第3版)>出版时,也就是Spring3.0时),我一直以为是SpringBoot的新特性. 2. Spring 2.1 AOP术语 通知Advice -- 切面要做什么,何时执行.何时,包括方法…
cglib详细学习 http://blog.csdn.net/u010150082/article/details/10901641 cglib-nodep jar报下载 http://grepcode.com/snapshot/repo1.maven.org/maven2/cglib/cglib-nodep/2.2 利用cglib给javabean动态添加属性 http://blog.csdn.net/ajun_studio/article/details/6807181 cglib官网 ht…
本文主要内容: ASM是什么 JVM指令 Java字节码文件 ASM编程模型 ASM示例 参考资料汇总 JVM详细指令 ASM是什么 ASM是一个Java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能.ASM可以直接产生二进制class文件,也可以在类被加载入Java虚拟机之前动态改变类行为.Java class被存储在严格格式定义的.class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称.方法.属性以及 Java 字节码(指令).ASM从类文件中读入信息后,能够改变…
反射和动态代理放有一定的相关性,但单纯的说动态代理是由反射机制实现的,其实是不够全面不准确的,动态代理是一种功能行为,而它的实现方法有很多.要怎么理解以上这句话,请看下文. 一.反射 反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力.通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义. 1.获取类(Class)对象 获取类对象有三种方法: 通过forName…
1.JAVA的动态代理特征:特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务. 它是在运行是生成的class对象,在生成时必须提供一组或一个interface给它,然后该class就宣称它实现了这些interface.你当然可以把该class的实例当做这些inter…
代理: 代理模式: 静态代理: 动态代理:是指在运行期动态的为指定的类生成其代理类.(需要相关的运行时编译技术) Javassist:Javassist是一个运行时编译库,他能动态的生成或修改类的字节码,类似的有ASM和CGLIB,大多数框架就是基于后者实现的. 参考资料 官网 Java字节码操纵框架ASM小试 关于java字节码框架ASM的学习 使用ASM操作Java字节码,实现AOP原理 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) asm 动态代理的例子 关…
动态代理工具比较成熟的产品有: JDK自带的,ASM,CGLIB(基于ASM包装),JAVAASSIST, 使用的版本分别为: JDK-1.6.0_18-b07, ASM-3.3, CGLIB-2.2, JAVAASSIST-3.11.0.GA (一) 测试结果: 数据为执行三次,每次调用一千万次代理方法的结果,测试代码后面有贴出. (1) PC机测试结果:Linux 2.6.9-42.ELsmp(32bit), 2 Cores CPU(Intel Pentium4 3.06GHz) Java代…
一.CGLib 简单介绍 CGLib (Code Generation Library) 是一个强大的,高性能,高质量的Code生成类库. 它能够在执行期扩展Java类与实现Java接口. Hibernate用它来实现PO字节码的动态生成.CGLib比 Java 的 java.lang.reflect.Proxy 类更强的在于它不仅能够接管接口类的方法.还能够接管普通类的方法. CGLib 的底层是Java字节码操作框架 -- ASM. CGLib就是封装了ASM,简化了ASM的操作,实现了在执…