jvm-sandbox:基础了解及demo演示

一、基础准备-被测应用

准备:先创建一个基础的SpringBoot项目并打jar包后在服务器启动
在这里插入图片描述

@RestController
public class MyController {

    @GetMapping("/index")
    public String index() {
        return "SANDBOX TEST";
    }

    @GetMapping("/test")
    public String test() {
        try{
            calce();
        }catch (Exception e){
            return "Has Error";
        }
        return "No Error";
    }

    public String calce(){
        return "";
    }
}

预览: 访问接口返回结果如下
index返回
在这里插入图片描述

二、代码编写-自定义Module

maven依赖:创建一个正常的maven项目,在依赖pom.xml文件中添加sandbox的父级依赖。

<parent>
    <groupId>com.alibaba.jvm.sandbox</groupId>
    <artifactId>sandbox-module-starter</artifactId>
    <version>1.2.0</version>
</parent>

代码编写:实现一个简单改变方法返回值的功能,并打包成jar包待后面使用。

@MetaInfServices(Module.class)
@Information(id = "change-resp")
public class Demo implements Module {
    private final static String CLASS_NAME = "com.onetester.springbootdemo.MyController";
    private final static String METHOD_NAME = "index";

    @Resource
    private ModuleEventWatcher moduleEventWatcher;

    @Command("changeResp")
    public void changeResp(){
        new EventWatchBuilder(moduleEventWatcher).onClass(CLASS_NAME).onBehavior(METHOD_NAME).onWatch(new AdviceListener(){
            protected void afterReturning(Advice advice) throws Throwable {
                ProcessController.returnImmediately(advice.getReturnObj() +": now changed");
            }

        });
    }
}

在这里插入图片描述

三、jvm-sandbox安装及基础命令

下载及安装

-- 下载
wget http://ompc.oss-cn-hangzhou.aliyuncs.com/jvm-sandbox/release/sandbox-stable-bin.zip
-- 解压
unzip sandbox-stable-bin.zip

在这里插入图片描述
相关命令

命令作用
./sandbox.sh -p pid 挂载sandbox到指定进程
../sandbox.sh -p pid 'xxxx'执行对应的指令 xxx这里代表指令
./sandbox.sh -p pid -S 停止挂载
./sandbox.sh -p pid -R 重新挂载
./sandbox.sh -p 8043 -l显示挂载的module

四、jvm-sandbox demo演示

4.1、改变方法返回

上传jar包:将前面自定义写的一个Module打包jar包后上传到sandbox-module目录下
在这里插入图片描述
查看端口:使用jps -ml命令查看启动的java项目进程
在这里插入图片描述
挂载模块并执行命令
在这里插入图片描述
查看结果
在这里插入图片描述

4.2、异常注入

异常注入:sandbox官方提供了基础的方法异常的代码,可见源码中的DebugRalphModule类,且对应jar包在下载中的example目录下。
在这里插入图片描述
启动模块:将example目录下的sandbox-debug-module.jar文件复制到sandbox-module目录下,并确认挂载的模块存在即可
在这里插入图片描述

注入异常: 给calce注入异常,并使其返回异常,从/test接口返回结果即可看出是否有异常。

./sandbox.sh -p 8043 -d 'debug-ralph/wreck?class=com.onetester.springbootdemo.MyController&method=calce&type=IOException'

在这里插入图片描述

在这里插入图片描述

五、资源链接

文章中相关代码demo
在这里插入图片描述

Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One Tester

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值