對於Java中的工具,爲什麼java.lang.instrument
比AspectJ更受歡迎,儘管它們都可以平等地執行工具的工作。使用java.lang.instrument
有什麼特別的優勢嗎?在此先感謝...java.lang.instrument vs AspectJ
回答
這是兩個完全不同的東西。 Instrumentation
API爲JVM運行時提供了一個鉤子,允許Java代理訪問JVM的更多高級功能。它還爲JVM的類加載提供了一個鉤子,在加載類時可以通知代理並重新定義其類文件。同樣,可以重新定義/重新轉換已經加載的類。
AspectJ是一個庫,它提供了一個更高層次的重新定義現有類的視圖。它適用於點削減和連接點來解釋如何重新定義一個類。然後,通過AspectJ等工具的幫助,在AspectJ中重新定義,或者AspectJ可以使用Java agebt和instrumentation API在運行時應用類的重新定義。
由於AspectJ是AOP實現與字節碼操作,最好比較AOP framewors。例如。 AspectJ vs Spring AOP。 java.lang.instrument
不是AOP框架。
由於Spring AOP建立在AspectJ上,因此不是最好的比較。 –
@RafaelWinterhalter這並非絕對正確。 Spring有一些AspectJ支持,但主要方法是[基於代理的](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html#aop-introduction-proxies) 。 –
我的意思是說,Spring提供的高級代碼生成基於底層解決方案,比如使用Instrumentation API的AspectJ。可以這麼說,春季金字塔的高一級。 –
- 1. Guice vs AspectJ
- 2. java.lang.instrument有多成熟?
- 3. Spring AOP:Xml vs AspectJ方法
- 4. AspectJ vs. Spring AOP與JBoss AOP異常處理
- 5. AspectJ編譯器(AJC)VS加載時編織
- 6. Spring AOP vs AspectJ啓動性能/內存需求
- 7. AspectJ的 - 懷疑
- 8. aspectj和spring roo'NoAspectBoundException'
- 9. AspectJ Around Advice
- 10. AspectJ的staticinitalization
- 11. AspectJ反彙編
- 12. AspectJ和NoClassDefFoundError
- 13. AspectJ + Gradle配置
- 14. AspectJ的春天
- 15. AspectJ JoinPoint問題
- 16. AspectJ問題
- 17. 與AspectJ的
- 18. 後()AspectJ中
- 19. Eclipse RCP AspectJ configure
- 20. Aspectj ltw aop.xml
- 21. 學習AspectJ
- 22. aspectJ in IntelliJ
- 23. JUnit測試AspectJ
- 24. 是否有java.lang.instrument提供的功能的.Net模擬?
- 25. Maven與AspectJ - 示例?
- 26. CDI Weld和AspectJ - org.jboss.weld.exceptions.UnproxyableResolutionException
- 27. maven aspectj編織NullPointerException
- 28. spring緩存和aspectj
- 29. AspectJ操作日誌
- 30. 比較CDI和AspectJ
AspectJ不是內置的? – chrylis
它是用於eclipse的插件庫 – FAZ