过去几个月我一直在研究基于 OSGI 和 Spring 的应用程序,直到现在我才注意到我没有指定要为 spring 配置加载哪些 XML 文件。那么 Karaf 如何知道要加载哪些文件呢?
我的项目是基于 Maven 的,它使用 maven-bundle-plugin构建 OSGI 包。由于项目是基于 maven 的,因此它遵循如下所示的简单 maven 目录结构。
src/
main/java/
main/resources/ ---/here I'm keeping my XML configuratoin files.
pom.xml
最佳答案
Karaf 在内部使用 spring 动态模块 (spring dm) 来处理基于 spring 的包。它查看包中的以下位置以检查配置文件。
META-INF/MANIFEST.MF (if Spring-Context attribute is present)
META-INF/spring (if it contains XML files)
引用 http://uniqueexperiments.blogspot.com/2015/09/spring-osgi-bundle-how-does-karaf-know.html
简短的回答是它有预定义的位置,如果你不把文件放在那里,它就不会加载它们。
关于java - Karaf如何知道要加载哪些spring配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34575113/