

package com.demo.common;
import com.demo.entity.User;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* Description: 静态资源
*
* @Author:
* @Date: 2022-07-29 22:05
* @version: V1.0.0
*/
@Component
public class DemoCommon {
private static Map<String, User> USER_MAP;
static {
USER_MAP = new HashMap<>();
USER_MAP.put("moon",new User("moon",18));
USER_MAP.put("starts",new User("starts",18));
USER_MAP.put("earth",new User("earth",18));
}
}

## 1.发起请求
## http://127.0.0.1/test/query
## 2.如果只观察一次,则
watch com.demo.controller.Test query -n 1

## 1.发起请求
## http://127.0.0.1/test/login
## 2.如果只观察一次,则
trace com.demo.service.impl.TestServiceImpl login
## 3.如果只观察异常耗时,则(毫秒),即耗时大于2500ms才打印
trace com.demo.service.impl.TestServiceImpl login '#cost > 2500'

## 1.命令
jad --source-only com.demo.controller.Test > C:\Users\Administrator\Desktop\source_code\Test.java

## 2.修改(Sublime)如果是在Linux系统,则可使用 VIM 命令

## 1.命令
mc C:\\Users\\Administrator\\Desktop\\source_code\\Test.java -d C:\\Users\\Administrator\\Desktop\\source_code\\

## 1.命令(修改方法返回值为 8 )
retransform C:\\Users\\Administrator\\Desktop\\source_code\\com\\demo\\controller\\Test.class
## 2.查看已增强的类(可重复执行1命令)
retransform -l
## 3.请求测试
## http://127.0.0.1/test/query
## 4.增强恢复,先清除增强类
retransform -d 1
retransform -d 2
## 5.重置
reset

测试结果

重置

重置后结果
reset 不生效,则在重置前执行一下其他命令,如:trace com.demo.controller.Test query
然后再执行reset即可

用户
package com.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Description: 用户
*
* @Author:
* @Date: 2022-07-29 21:17
* @version: V1.0.0
*/
@Data
@AllArgsConstructor
public class User {
private String name;
private int age;
}
控制层
package com.demo.controller;
import com.demo.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Description: 测试
*
* @Author:
* @Date: 2022-07-25 23:30
* @version: V1.0.0
*/
@CrossOrigin
@RestController
@RequestMapping("/test")
public class Test {
private TestService testService;
@Autowired
public Test(TestService testService){
this.testService = testService;
}
/**
* 登录
*/
@GetMapping("/login")
public void login(){
testService.login();
}
/**
* 查询
* @return
*/
@GetMapping("/query")
public int query(){
return 0;
}
}
测试接口
package com.demo.service;
import com.demo.entity.User;
/**
* Description: 测试服务
*
* @Author:
* @Date: 2022-07-29 21:16
* @version: V1.0.0
*/
public interface TestService {
/**
* 登录
* @return
*/
User login();
}
测试实现
package com.demo.service.impl;
import com.demo.entity.User;
import com.demo.service.TestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* Description: 测试服务
*
* @Author:
* @Date: 2022-07-29 21:19
* @version: V1.0.0
*/
@Slf4j
@Service
public class TestServiceImpl implements TestService {
@Override
public User login() {
checkUserCurrentAddress();
checkVerificationCode();
checkDynamicPass();
return new User("moon",1);
}
/**
* 校验 用户当前属地
*/
private void checkUserCurrentAddress(){
try {
Thread.sleep(400);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
log.info("Check User Current Address ...");
}
/**
* 校验 验证码
*/
private void checkVerificationCode(){
try {
Thread.sleep(800);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
log.info("Check Verification Code ...");
}
/**
* 校验 密码
*/
private void checkDynamicPass(){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
log.info("Check Dynamic Pass ...");
}
}
静态资源
package com.demo.common;
import com.demo.entity.User;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* Description: 静态资源
*
* @Author:
* @Date: 2022-07-29 22:05
* @version: V1.0.0
*/
@Component
public class DemoCommon {
private static Map<String, User> USER_MAP;
static {
USER_MAP = new HashMap<>();
USER_MAP.put("moon",new User("moon",18));
USER_MAP.put("starts",new User("starts",18));
USER_MAP.put("earth",new User("earth",18));
}
}