2017-04-06 79 views
0

我正在閱讀有關代碼注入在運行時代碼注入和子類之間的差異,並有可用如javassist,GluonJ和AspectJ許多工具/原料藥,其提供的功能將代碼注入。但是,我不明白在運行時注入代碼的目的,而我們可以通過Java中的子類進行重寫行爲。使用Javassist和GluonJ,我可以在運行時創建類,但爲什麼有人會這樣做呢?任何人都可以幫助我理解代碼注入的差異和目的嗎?什麼是Java

回答

0

代碼注入通常用於爲application that are used to modify/check/trace other software.在Java中,我們通常reffer這類圖書館作爲Bytecode modification libraries所以如果你看一下在互聯網上你可能會發現在這個名字的更多信息。

這裏我列舉幾個,我現在正在使用字節碼修改成自己的核心的大和著名工程實例:

  1. Evosuite:這個項目需要一個應用程序中輸入並生成單元測試它。代碼注入用於探索所需的項目和依賴關係以及可追溯性
  2. JaCoCO:該項目是用於Java項目的工具。它應該被附加到你的應用程序中,一旦你運行你的JUnit測試,它就會生成一個關於覆蓋範圍的報告。很顯然,在這裏,代碼注入是跟蹤測試執行期間所做的每個方法調用所必需的。