OSGi バンドル内でカスタム アノテーションが付けられたすべてのクラスを検索したいのですが、
実際のスキャンはバンドル自体の内部で行うか、別のバンドルから行う必要があります。
を使用してみClassPathScanningCandidateComponentProvider
ましたが、例外が発生します:
java.io.FileNotFoundException: URL [bundleresource://38.fwk29597962/my/base/package/] cannot be resolved to absolute file path because it does not reside in the file system: bundleresource://38.fwk29597962/my/base/package/
私は 99% 確信してreflections
います。または他のスキャン ライブラリのようなソリューションも機能しませんでした。理由は覚えていません。
次のように component-scan を設定できます。
<context:annotation-config />
<context:component-scan base-package="my.base.package" use-default-filters="false">
<context:include-filter type="annotation" expression="path.to.my.annotation"/>
</context:component-scan>
Bean ファクトリから必要なものを取得しますが、注釈付きのすべてのクラスに @Scope("prototype") を追加する必要があるため、Spring はデフォルトでシングルトンを作成しません。
より良い解決策はありますか?
-注釈付きのクラスに @Component や spring に関連するもの
が
ない