網(wǎng)站首頁 編程語言 正文
一、操作spring bean對象方法
首先,通過sc命令獲取bean類的類加載器hash值,命令如下:
sc -d com.xxx.xxx.web.controller.IndexController
會得到,classLoaderHash ? 69c112b6,然后執(zhí)行獲取到的spring被代理的目標(biāo)對象的方法
ognl -x 3 '#springContext=@com.xxx.xxx.service.util.BeanUtil@applicationContext,#springContext.getBean("indexController").health()' -c 69c112b6
如果沒有beanUtils工具類,還可以通過vmtool命令
vmtool -x 3 --action getInstances --className com.xxx.xxx.web.controller.IndexController --express 'instances[0].health()' -c 69c112b6
二、操作方法重新消費消息
1.通過ognl重新消費消息
?獲取類加載器hash值,同上
ognl -x 3 '#springContext=@com.xxx.xxx.service.util.BeanUtil@applicationContext,#springContext.getBean("storeVenderConsumerHandler").onMessage(new com.xxx.xxx.sdk4.kafka.message.KafkaMsgExt("123","{\"id\":107492,\"level\":\"store\",\"type\":\"update\",\"updateType\":\"base\"}"),null)' -c 69c112b6
2.通過vmtool重新消費消息
?獲取類加載器hash值,同上
vmtool -x 3 --action getInstances --className com.xxx.xxx.web.dafka.client.StoreVenderMessageListener --express 'instances[0].onMessage(new com.xxx.xxx.sdk4.kafka.message.KafkaMsgExt("123","{\"id\":107492,\"level\":\"store\",\"type\":\"update\",\"updateType\":\"base\"}"),null)' -c 69c112b6
附:beanUtils工具類
@Component
public class BeanUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
BeanUtil.applicationContext = applicationContext;
}
public static <T> T getBean(String beanName, Class<T> requiredType) {
return applicationContext.getBean(beanName, requiredType);
}
}
原文鏈接:https://blog.csdn.net/kfeng632/article/details/126959717
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-03-15 redis編譯報致命錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄
- 2022-04-09 SpringBoot 項目在Linux 環(huán)境下,日志文件logback撐爆云服務(wù)器
- 2022-08-30 Kotlin object的用法和內(nèi)存泄漏研究
- 2022-02-12 C語言-剖析數(shù)據(jù)是如何在內(nèi)存中存儲的(整型與浮點型)
- 2022-03-11 C語言中static的使用介紹_C 語言
- 2022-05-17 Error running ‘myToncat‘: Address localhost:8080 i
- 2023-12-11 Spring依賴注入DI
- 2022-10-08 Python使用plt.boxplot()函數(shù)繪制箱圖、常用方法以及含義詳解_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支