簡體   English   中英

Java 字節碼檢測到 ASPECTJ 標識的方法

[英]Java bytecode instrumentation to a method identified by ASPECTJ

我有一個遺留的 Java 代碼,我目前無法修改/無法訪問它的源代碼。 我們發現所有具有名為 @SomeAnnotation 的運行時注釋的方法都存在問題,我們希望修復這些方法中的某些內容。

@SomeAnnotation
void someMethod(...) {
     ...

}

我知道我可以使用 AOP (aspectJ) 來捕獲所有帶有這些注釋的函數並在之前/之后添加操作,以及用其他東西替換執行代碼......但我想做的是在里面添加一些東西此函數並保留其余代碼原樣(掃描字節碼並修改中間的函數......)

有可能這樣做嗎? 如果是這樣 - 如何?

謝謝

你可以試試javassist - 它是一個用於在 Java 中編輯字節碼的類庫; 它使 Java 程序能夠在運行時定義一個新類,並在 JVM 加載類文件時修改它。

HotSwap - 它允許更改方法主體,添加/重命名方法/字段

您也可能會發現此鏈接很有用。

(取決於你需要做什么(在開始添加一些代碼,完成函數的其余部分,在最后添加一些代碼,而不是在中間修改函數),你也許可以使用一個 around 建議,使用ProceedingJoinPoint invocation作為參數,您可以執行您的代碼,然后調用invocation.proceed()invocation.proceed()委托給原始目標。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM