最新文章列表

Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

  由于JVM通过字节码的二进制信息加载类的,那么,如果我们在运行期系统中,遵循Java编译系统组织.class文件的格式和结构,生成相应的二进制数据,然后再把这个二进制数据加载转换成对应的类,这样,就完成了在代码中,动态创建一个类的能力了。     在运行时期可以按照Java虚拟机规范对class文件的组织规则生成对应的二进制字节码。当前有很多开源框架可以完成这些功能,如ASM,Javass ...
bijian1013 评论(0) 有1817人浏览 2017-07-01 18:03

ASM在运行时通过修改字节码动态给接口添加Annotation

1. 对接口预先添加一个自定义注解:@ServiceType   2. 系统启动时,通过Spring扫描有包含注解:@ServiceType的接口,然后通过ASM类库修改接口字节码   3. 用到一些辅助工具:java命令,asm-util.jar,asm.jar ============================================================ ...
strongant 评论(0) 有4516人浏览 2016-05-22 22:13

比memcpy更快的内存拷贝:用赋值代替循环拷贝

原文是出自百度空间,百度空间早已关闭,所以原文出处无法查询了   相关衍生: 怎样写出一个更快的 memset/memcpy ? https://www.zhihu.com/question/35172305    以下内容转自:http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2010/10/15/1852251.html 然 ...
aigo 评论(0) 有12693人浏览 2016-05-21 12:40

Java-ASM

我们知道Java是静态语言,而python、ruby是动态语言,Java程序一旦写好很难在运行时更改类的行为,而python、ruby可以。 不过基于bytecode层面上我们可以做一些手脚,来使Java程序多一些灵活性和Magic,ASM就是这样一个应用广泛的开源库。 ASMisaJavabytecodemanipulationframework.Itcanbeusedtodynamical ...
Alex_hyts 评论(0) 有535人浏览 2016-04-05 15:45

反射工具包(字节码生成)

    ReflectionUtil 反射工具包,利用反射的API直接生成Java字节码,提高执行效率。 普通方法调用 所有的命令最终生成到Invoker对象的invoke方法中 publ ...
liwei113114 评论(0) 有613人浏览 2015-10-11 10:20

ASM系列八 利用TreeApi动态注入方法逻辑

 一、转换方法的字节码           利用Tree Api转化方法字节码,其实也就是对MethodNode对象的InsnList的操作。通过获取InsnList的迭代器,可以直接add ...
lijingyao8206 评论(0) 有10576人浏览 2015-08-28 19:14

ASM系列七 TreeApi Method组件和接口介绍

一、MethodNode概述           ASM的TreeApi 对于Method的转换、生成也提供了一系列的组件和接口。其功能主要基于前一章提到的MethodNode类。MethodNode中大多数属性和方法都和ClassNode类似,其中最主要的属性就是InsnList了。InsnList是一个双向链表对象,包含了存储方法的字节指令序。先来看下InsnList中的主要是属性和 ...
lijingyao8206 评论(1) 有10873人浏览 2015-07-21 18:57

ASM系列六 利用TreeApi 添加和移除类成员

    同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。   package asm.core; /** * Created by yunshen.ljy on 2015/6/8. */ publi ...
lijingyao8206 评论(1) 有8593人浏览 2015-07-15 19:54

ASM系列五 利用TreeApi 解析生成Class

   前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。          在介绍前,先要知道一点, Tree工程的接口基本可以完成大部分我们之前介绍的Core中的功能。但是在实际使用中更加便利,当然 ...
lijingyao8206 评论(0) 有24081人浏览 2015-07-12 16:21

ASM系列四 利用Method 组件动态注入方法逻辑

        这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor ...
lijingyao8206 评论(2) 有11160人浏览 2015-07-03 09:20

ASM系列三 利用Methord组件动态生成方法字节码

 一、概述       ASM的CoreApi 中还提供了对class 中方法的生成和解析的组件。前面两篇着重介绍了ClassVisitor 组件的应用场景。ClassVisitor Api 中的visitMethod(int access, String name, String desc, String signature, String[] exceptions)方法返回了一个Metho ...
lijingyao8206 评论(8) 有6892人浏览 2015-06-28 13:41

ASM系列二 利用Core API 迁移、添加及移除类成员

之前一篇简单介绍了一下ASM框架。这一篇继续对CoreApi进行扩展。这里还是继续对ClassWriter ,ClassReader和ClassVisitor的应用的扩展。前面一篇主要介绍的是ClassWriter和ClassReader单独应用的场景。这一篇把这两者作为producer(ClassReader)和consumer(ClassWriter)来结合起来介绍一下另外一些用途。 一、 ...
lijingyao8206 评论(0) 有2367人浏览 2015-06-13 17:32

ASM系列一 利用Core API 解析和生成字节码

    ASM是一个提供字节码解析和操作的框架。Cglib框架就是基于ASM框架实现的,被广泛应用的Hibernate,Spring就是基于Cglib 实现了AOP技术。 在说到AOP的Java实现,可能会优先想到java的Proxy api,通过invoke方法拦截处理相应的代码逻辑,但是proxy 是面向接口的,被代理的class的所有方法调用都会通过反射调用invoke 方法,相 ...
lijingyao8206 评论(2) 有3054人浏览 2015-06-09 18:58

Oracle ASM和多路径软件的兼容性

转自metalink  Oracle ASM and Multi-Pathing Technologies  Doc ID:  Note:294869.1    This document will briefly discuss Multipath I/O and how Oracle Automatic Storage Management leverages multi-pathing ...
sjwpython 评论(0) 有2273人浏览 2015-05-26 17:44

Java字节码和asm入门资料

1.文章 Mastering Java Bytecode at the Core of the JVM  第一部分结合例子简要介绍了java字节码,第二部分介绍asm的入门。是值得阅读的入门资料。附件附了一份该 ...
xpenxpen 评论(0) 有1187人浏览 2015-03-20 15:35

浅谈asm的应用

看图说话 这张图展示了asm的威力,一个java字节码操纵的类库。 框架之间的依赖关系是:图中位于下面的框架依赖上面的框架。 有很多框架都是基于asm之上的,比如cglib。 groovy通过修改字节码的方式,为java语言添加了许多功能。 cobertura通过修改字节码的方式,从而做到代码覆盖率测试。 另两个值得注目的技术是JDK动态代理和JDK instrument。 tprofile ...
asm 
xpenxpen 评论(0) 有1273人浏览 2015-03-20 13:39

初探ASM

       前些日工作中需要改一个jar包中的程序代码,想了很多方法 包括直接修改、动态代理等等,但都效果不好。最后无意中发现了ASM这个框架,感觉正是我需要的。研究几日,用到一些基础功能就实现了所要效果,所以写出来给大家共享,自己忘了也好参考参考.下面是ASM一些基本介绍,就当是抛砖引玉了~~其中参考了几篇其他iteye朋友的文章,主要是JVM、字节码和类加载方面的东西,有助于更好的理解AS ...
ASM 
kakarottoz 评论(0) 有1452人浏览 2015-03-08 21:03

[转]利用UDEV服务解决RAC ASM存储设备名

在<Why ASMLIB and why not?>我们介绍了使用ASMLIB作为一种专门为Oracle Automatic Storage Management特性设计的内核支持库(kernel support library)的优缺点,同时建议使用成熟的UDEV方案来替代ASMLIB。 这里我们就给出配置UDEV的具体步骤,还是比较简单的: 1.确认在所有RAC节点上已经安装了 ...
krs 评论(0) 有781人浏览 2014-11-08 21:04

java字节码操作框架集合

(1) ObjectWeb ASM轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。 该项目主页:http://asm.obje ...
xiemingmei 评论(0) 有1299人浏览 2014-09-28 15:01

最近博客热门TAG

Java(141744) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54919) .net(54785) Web(54514) 工作(54118) Linux(50905) Oracle(49875) 应用服务器(43289) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37267) 数据结构(36424)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics