首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
苦味代码
掘友等级
开发工程师
|
阿里巴巴
后端仔
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
10
文章 10
沸点 0
赞
10
返回
|
搜索文章
赞
文章( 10 )
沸点( 0 )
InnoDB自增原理都搞不清楚,还怎么CRUD?
虽然我们习惯于给主键ID指定AUTO_INCREMENT属性,但是AUTO_INCREMENT也是可以指定到非主键字段的,唯一的约束就是这个字段上面得加索引,有了索引,就可以通过类似SELECT MAX(*ai_col*)的语句快速读到这列数据的最大值。 在这个版本之前,用AU…
Builder注解不好用,试试SuperBuilder
相信Lombok插件大家一定不会陌生,一个常用的注解是:@Builer, 它可以帮我们快速实现一个builder模式。以常见的商品模型为例: 这样写不但美观,而且还会省去好多无用的代码。 给BaseDTO上加上Builder注解也不会有任何效果。事实上,Builder注解只管承…
Arthas原理系列(二):总体架构和项目入口
我们重点关注configure.setArthasAgent((String) commandLine.getOptionValue("agent"));这一行代码,从这里可以看出,我们的 agent 就是启动脚本中agent这个选项后面的值了。 打开项目工程,找到agent这…
Arthas原理系列(五):watch命令的实现原理
通过前面几篇文章的介绍,我们可以看到Arthas是如何通过插装来获取运行时信息的,从这篇文章开始,我们开始看Arthas里面的命令具体是如何实现的,涉及到的命令有watch, trace, monitor, stack, time tunnel, 这几条命令相应的Command…
Arthas原理系列(一):利用JVM的attach机制实现一个极简的watch命令
可以看到,现在正在运行的字节码和我们从源码编译过来的相比多了两行,多的这两行正是 Arthas 插装的代码,Arthas 的一切魔法都从这里开始。 给运行中的代码插装新的代码片段,这个特性 JVM 从 SE6 就已经开始支持了,所有有关代码插装的 API 都在java.lang…
OGNL语法规范
OGNL(Object-Graph Navigation Language)是一种表达式语言(EL),简单来说就是一种简化了的Java属性的取值语言,在传统的Struts框架,以及MyBatis中都有大量使用,开源Java诊断利器Arthas也使用它做表达式过滤,简单但不失灵活…
消失的Java堆栈
这周的某天突然爆出线上查询卖家订单异常的报警,因为这个接口量比较大,赶紧排查马上介入看了下,找到日志后发现这个接口的实现抛了NPE,但是在日志里看不到堆栈。因为封网的时间已经很长了,应该不是发布导致的。但无论如何,要先定位到抛NPE的地方,才能知道是哪里出了问题 )可以看到,在…
Arthas原理系列(四):字节码插装让一切变得有可能
在前面的文章中我们可以看到watch命令对原来的字节码进行了插装,并且我们以此为思路实现了一个简易版的watch命令,但真实的watch提供的能力远不止统计方法的运行时间,我们最常用他的一个功能还是观察方法的入参返回值等运行时的变量。所有需要插装字节码的命令都继承了Enhanc…
Arthas原理系列(三):服务端启动流程
本篇文章主要讲我们在终端中敲入的命令是如何被 arthas 服务器识别并且解释的。要注意这个过程是 arthas 对所有命令执行过程的抽闲,对于具体命令的执行过程我会在后面的系列文章中再说。 这段方法用反射的方法调用了com.taobao.arthas.core.server.…
下一页
个人成就
文章被点赞
32
文章被阅读
15,102
掘力值
408
关注了
3
关注者
28
收藏集
0
关注标签
4
加入于
2020-12-02