基本上我有这个 Outer.jar,其中声明的是带有组件扫描的应用程序上下文:
<context:component-scan
base-package="x.y.z.class" />
但是这个x.y.z.class
位于inner.jar中,它是outer.jar的依赖项,
我收到错误,找不到类.../Outer.jar/x/y/z/class
,如何指定检查inner.jar?
更新: 将应用程序上下文初始化为:
org.springframework.context.ApplicationContext ctx =
new ClassPathXmlApplicationContext("applicationContext.xml");
exception: I/O failure during classpath scanning; nested exception is java.io.FileNotFoundException: ..\default\deploy\test.war\WEB-INF\lib\inner.jar\x\y\z
and it says inner.jar/x/y/z/class not found
Outer.jar 将inner.jar 作为依赖项
最佳答案
确保inner.jar(或任何您命名的名称)存在于您的类路径中(通过添加到maven依赖项、eclipse项目设置、使用-cp jvm命令行参数等),并且仅引用包名称您想要包含的inner.jar 中的类。
还要确保您不会混淆 jar、基础包和完全限定的类名。如果我在 Blah.jar 中有一个类 com.mycoolcompany.service.Booya ,通常我只需要这样做
<context:component-scan base-package="com.mycoolcompany.service.*" />
并确保 Blah.jar 位于父项目的类路径中
关于java - Spring 组件扫描嵌套 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20086464/