GithubHelp home page GithubHelp logo

meimingle / arthas-idea-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wangji92/arthas-idea-plugin

0.0 0.0 0.0 16.81 MB

arthas idea plugin 更简单的使用arthas的IDEA 插件,方便的构建各种arthas 命令,复制到剪切板 然后到服务器上启动arthas 执行命令。

Home Page: https://plugins.jetbrains.com/plugin/13581-arthas-idea

License: Apache License 2.0

Java 94.76% Shell 5.24%

arthas-idea-plugin's Introduction

arthas idea plugin

联系方式

有问题直接加我微信wj983433479 或者 扫码添加钉钉群 32102545 沟通

帮助文档链接

more issue : https://github.com/WangJi92/arthas-idea-plugin/issues label=documentation

如果你喜欢这款插件,欢迎给身边的小伙伴推荐,给个github star,谢谢

一、背景

目前Arthas 官方的工具还不够足够的简单,需要记住一些命令,特别是一些扩展性特别强的高级语法,比如ognl获取spring context 为所欲为,watch、trace 不够简单,需要构造一些命令工具的信息,因此只需要一个能够简单处理字符串信息的插件即可使用。当在处理线上问题的时候需要最快速、最便捷的命令,因此Idea arthas 插件还是有存在的意义和价值的。

二、支持的功能

支持的功能都是平时处理最常用的一些功能,一些快捷的链接,在处理紧急问题时候不需要到处查找,都是一些基本的功能,自动复制到剪切板中去,方便快捷。

image

2.1 watch

watch StringUtils uncapitalize '{params,returnObj,throwExp}' -n 5 -x 3

2.2 trace 

trace StringUtils uncapitalize -n 5

2.3 static ognl (字段或者方法)

2.3.1 右键static ognl

2.3.2 获取classload命令

必须要获取,不然会找不到classload,arthas 官方获取问题系统的classload,spring 项目应该无法获取到这个class的信息,因此首先执行一下这个命令

sc -d StringUtils

2.3.2 复制到界面,获取命令,执行即可

ognl  -x  3  '@StringUtils@uncapitalize(" ")' -c 8bed358

2.4 Invoke Bean Method

 实际上就是根据当前的spring项目中的获取静态的spring context这样可以直接根据这个context直接获取任何的Bean方法,一般在Java后端服务中都有这样的Utils类,因此这个可以看为一个常量! 可以参考:arthas idea demo 有了这个,我们可以跟进一步的进行数据简化,由于在idea这个环节中,可以获取方法参数,spring bean的名称等等,非常的方便。

package com.wangji92.arthas.plugin.demo.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * 提供给arthas ognl 获取context的信息
 *
 * @author 汪小哥
 * @date 30-28-2020
 */
@Component
public class ApplicationContextProvider implements ApplicationContextAware {
    private static ApplicationContext context;

    public ApplicationContext getApplicationContext() {
        return context;
    }

    @Override
    public void setApplicationContext(ApplicationContext ctx) {
        context = ctx;
    }
}

2.4.1 设置获取spring context的上下文

arthas idea plugin 配置

2.4.2 右键点击需要调用的方法

这里的策略和static ognl 一样的,本质还是ognl的调用。

ognl  -x  3  '#springContext=@applicationContextProvider@context,#springContext.getBean("arthasInstallCommandAction").actionPerformed(new com.intellij.openapi.actionSystem.AnActionEvent())' -c desw22

特别说明对于ognl 字段类型的处理

代码地址

2.6 常用特殊用法链接

Development Guide

CONTRIBUTING

arthas-idea-plugin's People

Contributors

15257703071 avatar anjia0532 avatar f-sunrise-q avatar reminance avatar wangji92 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.