我想在 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
其他扫描库这样的解决方案也不起作用,现在不记得为什么了
我可以像这样配置组件扫描:
<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 相关的东西
-osgi 框架(eclipse equinox 3.8)嵌入到Web 应用程序中
-使用spring 3.2.3 和gemini-blueprint 2.0.0.M02