Arthas 的一个很重要的应用场景,就是查看运行时的数据,但有时需要动态的查看数据,或者数据过多,需要动态筛选,比较复杂的规则就需要靠 OGNL 了。
下面介绍一些常用的 arthas 中 ognl 的操作,测试代码如下,springboot 工程:
@RequestMapping("send")
public String send(HttpServletRequest request, HttpServletResponse response){
return doSend(createUserList(),false);
}
public String doSend(List<User> userList,boolean flag){
System.out.println("doSend");
return "success";
}
private List<User> createUserList(){
List<User> userList = new ArrayList<>();
for (long i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setUsername("u"+i);
userList.add(user);
}
return userList;
}
class User {
private String username;
private Long id;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
private String convert(){
return id+"_"+username;
}
}
查看第 N 个参数
watch com.example.httpclientdemo.HttpclientDemoApplication send 'params[0]'
Press Q or Ctrl+C to abort.
Affect(class-cnt:2 , method-cnt:1) cost in 45 ms.
ts=2019-09-26 15:13:38; [cost=0.267515ms] result=@RequestFacade