1. 程式人生 > >Btrace安裝入門

Btrace安裝入門

二 兩種執行指令碼的方式 1 在JVisualVM中新增Btrace外掛,新增classpath 2 使用命令列btrace <btrace_scipt> 第一種指令碼例子 類似於攔截器方式織入程式碼 controller測試程式碼 package com.baoge_springboot.springboot_core.web.controller;

import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;

@RestController @RequestMapping("/ch") public class CahController { @RequestMapping("/question") public String query(@RequestParam(“name”) String name){ return "success: "+name; }

} 指令碼程式碼 package com.baoge_springboot.springboot_core.common.btrace;

import com.sun.btrace.AnyType; import com.sun.btrace.BTraceUtils; import com.sun.btrace.annotations.*;

@BTrace public class BtraceSimple { @OnMethod( //需要攔截的類 clazz = “com.baoge_springboot.springboot_core.web.controller.CahController”, //需要攔截的方法名 method = “query”, //攔截位置 進入方法入口 location = @Location(Kind.ENTRY) ) /** * @ProbeClassName 要攔截方法類名 *@ProbeMethodName 要攔截方法名 *AnyType[] 方法引數 */ public static void anyRead(@ProbeClassName String pcm, @ProbeMethodName String pmn, AnyType[] args){ BTraceUtils.printArray(args); BTraceUtils.println(pcm+","+pmn); BTraceUtils.println(); }

} 新增架包

	<dependency>
		<groupId>com.sun.tools.btrace</groupId>
		<artifactId>btrace-boot</artifactId>
		<version>1.2.3</version>
	</dependency>
	
	<dependency>
	<groupId>com.sun.tools.btrace</groupId>
	<artifactId>btrace-agent</artifactId>
	<version>1.2.3</version>
	</dependency>
	
	<dependency>
	<groupId>com.sun.tools.btrace</groupId>
	<artifactId>btrace-client</artifactId>
	<version>1.2.3</version>
	</dependency>

命令執行 進入指令碼目錄 E:\Store\springboot_core\src\main\java\com\baoge_springboot\springboot_core\common\btrace 在這裡插入圖片描述 檢視該目錄下的檔案 在這裡插入圖片描述

執行 查詢pid 命令 jps -l 在這裡插入圖片描述 執行命令 Btrace 程序號 指令碼名 在這裡插入圖片描述 訪問 檢視控制檯輸出結果: 引數 helloeo!!88 方法名 com.baoge_springboot.springboot_core.web.controller.CahController,query

在這裡插入圖片描述