簡體   English   中英

如何在OSGi包中找到帶注釋的類

[英]How to find annotated classes in OSGi bundle

我的應用程序有幾個包,它們包含JAXB注釋類和服務包,它負責創建JAXBContext

服務包注冊BundleListener並捕獲生命周期事件,但問題是我不知道如何從org.osgi.framework.Bundle對象中檢索帶注釋的類。 MANIFEST.MFBundle.loadClass(..)添加帶有類的條目將解決我的問題,但是通過注釋查找類似乎對我來說是更明確的解決方案。

你知道如何找到帶注釋的課程嗎?

我想我必須掃描jar文件中的.class資源

Enumeration<?> classes = bundle.findEntries("/", "*.class", true)

並使用Bundle.loadClass(...)加載它們。 你認為這種方法會出現任何性能問題嗎?

使用Bundle.findEntries搜索包不會搜索Bundle-Classpath。 您需要使用新的BundleWiring.listResources api。

看看http://sourceforge.net/projects/extcos/ ; 雖然它的重點是組件掃描,但我認為它可以涵蓋您的用例。 請注意,注釋在JAXB中是可選的 - 也就是說,JAXB可以使用類而無需注釋。

我會看一下反思項目 它的收集預掃描元數據功能也很有用。

暫無
暫無

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

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