Byte Buddy:使用流式API进一步简化字节码生成

bytebuddy

Byte Buddy是一个代码生成与操作库。它无需编译器,能够在Java程序运行时创建与修改 class 文件。与Java Class Library一起的其他代码生成工具不同,Byte Buddy支持创建任意 class 文件,而不限于为运行时代理提供接口实现。Byte Buddy还提供更加便捷的API,既可以通过 Java agent 手动改变 class 文件,也可以在构建过程中中修改。

 

Hello world!

通过ByteBuddy实例新建的Java class:

上面的示例中,ByteBuddy默认配置创建了一个可以被JVM理解的Java class。继承 Object 类并重载了 toString 方法,通过 ElementMatcher 把返回值改为了固定的 Hello World!

ByteBuddy提供了多种匹配器,ElementMatcher 只是其中一个。还可以通过 Implementation 接口提供自定义实现。

不仅于此,Byte Buddy还可以通过 Java agents API 对已有的代码在运行时进行转换。可以阅读 Byte Buddy GitHub介绍了解各种功能用法。

下载

Byte Buddy目前最新版本是1.5.4,可以直接下载,也可以从GitHub下载源代码

仓库

Byte Buddy可以从 Maven CentralJCenter 下载。使用构建管理工具可以方便地为 Byte Buddy 添加依赖。发布项目前,请仔细阅读项目依赖维护说明

文档

教程页面可以找到Byte Buddy功能详尽文档。还可以从Byte Buddy代码中查看文档,可以从代码仓库以及这个网站获取源代码。还可以在项目Wiki中找到开发技术文章以及会议演讲。

获得支持

商业版

Byte Buddy可以免费试用。使用中要获得更好的支持、培训可以 rafael.wth@gmail.com 了解更多信息。

免费版

常见问题可以在 Stack Overflow 或者 Byte Buddy邮件列表找到答案。

依赖

使用Byte Buddy不需要理解Java字节码或者class文件格式,Byte Buddy提供的API非常直观易于理解。Byte Buddy API设计旨在提供非侵入式的操作,不在class文件中留下任何信息。因此,生成的class文件不需要在class path中依赖Byte Buddy。

虽然Byte Buddy是用Java 6开发的,但是可以支持任何版本的Java class文件。Byte Buddy是一个轻量级开发库,只依赖ASM的visitor API,没有其他额外的依赖

开发资源

许可证

Byte Buddy是一个开源项目,遵循Apache 2.0协议发布。
请注意,Byte Buddy依赖的ASM 开发库基于BSD协议发布

官方网站:http://bytebuddy.net/
开源地址:https://github.com/raphw/byte-buddy/releases

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

1 收藏

资源整理者简介:唐尤华

唐尤华:我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。 个人主页 · 贡献了108个资源 · 18 ·    


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer