Spring组件扫描嵌套jar

mel*_*ngs 2 java spring jar autowired applicationcontext

基本上我有这个Outer.jar,在它中声明是一个带有组件扫描的应用程序上下文:

<context:component-scan
        base-package="x.y.z.class" />
Run Code Online (Sandbox Code Playgroud)

然而,这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
Run Code Online (Sandbox Code Playgroud)

Outer.jar将inner.jar作为依赖项

ger*_*tan 6

确保在类路径中存在inner.jar(或任何你命名的内容)(通过添加到maven依赖项,eclipse项目设置,使用-cp jvm命令行参数等),并且只需引用类的包名称你想要包括在inner.jar里面.

另外,请确保您不要在jar,基本包和完全限定的类名之间混淆.如果我com.mycoolcompany.service.Booya在Blah.jar中有一个课程,通常我只需要这样做

<context:component-scan base-package="com.mycoolcompany.service.*" />
Run Code Online (Sandbox Code Playgroud)

并确保Blah.jar位于父项目的类路径中