3 舞动的痞老板

尚未进行身份认证

我要认证

用且思考,为中国开源软件做点贡献

等级
TA的排名 5w+

bytebuddy之advice详解 & 注解详解

注解列表一、 注解列表二、 demo 解析一、 注解列表注解值@OnMethodEnter表示这个方法会在,进入目标方法时调用,这个注解声明的方法必须是static。当目标的方法是constructor构造器时,@This只能写field,不能读field,或者调用方法skipOn()跳过一些方法prependLineNumber()如果为true,会改目标方法的行号inline()标识方法应该被内联到目标的方法中去suppress()忽

2020-07-21 12:24:35

plantUml 中文指南 plus

用简单语言绘制有用的umlplantuml1. 时序图* 基础概念* 元素速查表1.1 简单示例1.2 声明参与者1.3 在参与者中使用非字母符号1.4 给自己发消息1.5 修改箭头样式1.6 修改箭头颜色1.7 对消息序列编号1.8 Page Title, Header and Footer1.9 分割示意图 (可分多个图)1.10 组合消息1.11 给消息添加注释1.12 其他的注释1.13 改变备注框的形状1.14 Creole 和 HTML1.15 分隔符1.16 引用1.17 延迟1.18

2020-07-19 12:34:56

bytebuddy agentBuilder实用手册

实用手册1. 类加载池的策略(PoolStrategy)1.1 PoolStrategy.Default 懒加载策略1.2 PoolStrategy.Eager 积极加载策略1.3 PoolStrategy.ClassLoading 多层加载策略1.4 WithTypePoolCache 带缓存的加载策略1. 类加载池的策略(PoolStrategy)可以创建一个TypePool对象,TypePool负责对加载类的管理。TypePool typePool(ClassFileLocator clas

2020-07-17 17:27:16

bytebuddy实现原理分析 &源码分析 (三)- advice 详解

advice详解八、advice8.1 AsmVisitorWrapper8.1.1 ForDeclareFields8.1.1.1 Entry8.1.1.2 DispatchingVisitor8.1.1.3 ForDeclaredField 的内部实现8.1.4 看一个子类的实现8.1.2 ForDeclaredMethods8.1.3 Compound8.2 AsmVisitorWrapper 的实现类8.3 Advice :最核心的类8.3.1 ArgumentHandler8.3.1.1 For

2020-07-15 10:04:22

bytebuddy实现原理分析 &源码分析 (二)

bytebuddy实现原理分析 &源码分析四、字节码的操作(implementation ) pkg4.1 bytecode :pkg4.1.1 StackManipulation :cls4.1.1.1 StackManipulation的子类实现4.1.2 assign :pkg4.1.2.1 Assigner : cls1 Typing: in & cls2 核心方法: in3 EqualTypesOnly : in & impl4 Refusing : in & im

2020-07-13 20:52:09

opentracing的java-api详解

java-api详解一、opentracing的概念与术语二、opentracing 的规范2.1 模糊定义的部分2.2 清晰定义的部分2.2.1 tags & logs 表 (耳机标签)2.2.2 解释1 描述特殊模型的变量,比如rpc2 HTTP Server Tags3 Captured errors4 描述database5 Message Bus 信息交换三、opentracing 代码结构3.1 代码结构3.2 核心组件概念介绍TracerScopeManagerSpan1 生成一个新的

2020-07-10 12:20:12

bytebuddy实现原理分析 &源码分析 (一)

本文介绍byte buddy的源码。byte buddy 是 新一代用于动态修改字节码的工具。官方文档过于老旧和简陋,想要更好的使用 byte buddy 需要阅读源码。dep 是byte buddy的开发包,实现都在里面。码非常复杂。源码的编写是递进的,从对java的类型进行封装,到类的动态定义,运行时的加载,以及如何匹配修改字节码。但是作者明显是对jvm的知识非常了解,作者很清楚字节码在jvm的加载原理 & 很清楚添加或减少类的成员,到底应该对字节码做些什么,所以很难要从这个角度去分析源码。

2020-07-07 11:19:44

java 注解(Annotations)的字节码详解

注解一 、描述1.1 methods 方法表2.2 annotations的数据结构2.2.1 RuntimeVisibleAnnotations2.2.1.1 annotation的结构二、字节码2.1 源码2.2 编译后的bytecode注解可以标注在class、field、method上,同时又可以分为编译期的注解,运行期的注解。这篇文章会结合jvm规范3.1.5说明注解在字节码中的位置。一 、描述注解可以标注在class、interface、fileds、method、method para

2020-07-04 14:52:50

bytebuddy的开发指南-翻译

bytebuddy的开发指南-翻译入门架构概览编码约定贡献路线图类型推断原文链接翻译这个的目的是,简述了源码的结构入门首先,您需要在本地计算机上创建Byte Buddy的副本。克隆存储库后,您可以使用Maven构建项目 。你的shell命令,这可能看起来像这样:git clone https://github.com/raphw/byte-buddy.gitcd byte-buddymvn package在开始编码之前,请确保所有测试用例都能成功运行。Byte Buddy的maste

2020-07-02 19:30:17

maven 导入asm的依赖 、 简单入门

asm项目结构1. 项目结构1.1. asm的仓库1.2 核心项目1.2.1 org.objectweb.asm 和 org.objectweb.asm.signature1.2.2 org.objectweb.asm.util1.2.3 org.objectweb.asm.commons1.2.4 org.objectweb.asm.tree1.2.5 org.objectweb.asm.tree.analysis1.3 其他项目1.3.1 asm-all和asm-parent1.4 maven依赖2.

2020-06-30 16:57:17

asm使用指南中文-md版&快速入门&详解

ASM使用指南中文版1. 介绍1.1 动机1.2 概述1.2.1 范围1.2.2 模型1.2.3 体系结构1.3。组织1.4。致谢2.班级2.1。结构体2.1.1。概述2.1.2。内部名称2.1.3。类型描述符2.1.4。方法描述符2.2。接口和组件2.2.1。介绍2.2.2。解析类2.2.3。生成类2.2.4。改变类2.2.5。删除班级成员2.2.6。添加班级成员2.2.7。转化链2.3。工具2.3.1。输入2.3.2 TraceClassVisitor2.3.3。CheckClassAdapter2.3

2020-06-22 12:13:13

b idea 的 uml类图

文章目录UML不陌生,在IDEA是如何展现的呢typesubtypeexampleextends 继承interface extends interfacepublic interface Aunt extends GrandFather, GrandMotherclass extendsabstract classpublic class Cousin extends Uncleclass extends classpublic class Son

2020-06-19 14:43:45

b bytebuddy 之agentbuilder 的使用&API详解

Agentbuilder入门+API详解一、使用范式:创建一个agent二、 类结构2.1 嵌套的内部类2.2 方法使用中发现源码中的高阶用法根本看不懂,狠下心来试着结合文档和源码看下Agentbuilder。这篇文档会忽略java agent的基础知识,请自行百度。对过于繁琐的代码,会说明意图,细节等。首先会介绍用法的模板,涉及bytebuddy的各个类的作用,请参考bytebuddy简单入门然后是按照类的结构来介绍Agentbuilder的功能。希望我能写完吧,太难了。一、使用范式

2020-06-18 17:14:14

b Spring MVC 如何内嵌 tomcat & 流程分析

文章目录一、基本机制1.1 starter 的结构1.2 `autoconfigure` 自动装配模块1.3 `dependency` 依赖模块二 、Spring MVC装配tomcat 分析2.1 pom 分析2.2.1 jar包的依赖2.2.1 自动装配逻辑2.2 tomcat 的自动装配&mvc自动装配2.2.1 tomcat的装配逻辑: `TomcatWebServerFactoryCustomizer`2.2.2 回调函数加载 tomcat :`WebServerFactoryCustom

2020-06-17 18:43:18

b java 之 serviceLoader详解 & serviceLoader.load(XXX.class)

—> go to 总目录文章目录一、JNDI与ServiceLoder1.1 JNDI1.2 ServiceLoder二、ServiceLoder的SPI2.1 SPI的基本流程2.2 使用示例三、源码解析3.1 Iterable 接口3.2 内部类provider3.3 核心方法Load3.3.1 static ServiceLoader load(Class service, ClassLoader loader, Module callerModule)3.3.2 static Servi

2020-06-10 20:18:47

JVM(四):虚拟机性能监控与故障处理工具

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段数据 运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。JDK命令行位置bin下的程序特点27KB 是jdk/lib/tools.jar的封装,核心实现再tools.jar中,tool.jar只支持hotpotjpsJVM Process Status Tool 显示指定系统内所有的HotSpot虚

2020-06-09 15:40:16

JVM(三):GC回收

GC设计出发点:那些内存需要回收?什么时候需要回收?如何回收?应用:目前内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节程序基数器、虚拟机栈、本地方法栈、随着线程的生命周期,分配和xiao销毁确定。但是heap堆的很多内存运行时才能确定,所以本节聚焦于heap堆##对象是否

2020-06-09 15:34:42

JVM(二):运行时数据区

本节会介绍jvm的内存设计,并通过制造error,来体验内存溢出,辅助理解。这张图是java虚机规范(SE7)描述的。对于各种不同的虚拟机,只要在逻辑上遵从这样的设计即可,比如将虚拟机栈和本地方法栈合并,但是可以被抽象两个区的功能可。灰色块是所有线程共享,白色是线程独享。##功能介绍具体请参考**《深入理解java虚拟机》** 这里的描述。这里仅概要记录自己理解的梳理。####程序计数器 Program Counter Register一块小的内存,每个线程都有独立的。一个f.

2020-06-09 15:28:20

JVM(一):java技术体系与编译openjdk

利用java虚机的语言,和程序都属于java技术体系的中的一员。模块languagejvm虚机class文件格式javaAPI类库第三方java类库JDKlanguagejvm虚机javaAPI类库平台java Cardjava MEjava SEjava EE重要JVMSun HotSpot VMKVM 轻量但慢BEA JRockitIBMJ9 VM未来模块化混.

2020-06-09 15:26:34

cpu架构体系 简单总结

文章目录两种指令集四大CPU体系1.ARM2.x86系列/Atom(安腾)3.MIPS系列4.PowerPC系列x86与ARM区别(冯诺依曼和arm)两种指令集originCISC 复杂指令集计算机RISC 精简指令集计算机Arm与x86 基础概念四大CPU体系ARM/MIPS/PowerPC均是基于精简指令集机器处理器的架构;X86则是基于复杂指令集的架构,Atom是x86或者是x86指令集的精简版1.ARMARM架构,过去称作进阶精简指令集机器(Advanced RISC Mach

2020-06-09 15:23:58

查看更多

勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取