java - Spring 组件扫描嵌套 jar

标签 java spring jar autowired applicationcontext

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

<context:component-scan
        base-package="x.y.z.class" />

但是这个x.y.z.cl​​ass位于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/

相关文章:

java - Spring Boot 中是否有一个全局标志来禁用所有计划作业?

java - 将仅编译时 jar 与 Maven 一起使用

java - 使用 OpenSaml 将 SAMLRequest 解析为 AuthnRequest,Unmarshaller 为 NULL

java - java中的枚举如何线程安全?

java - IDE 的 Maven 支持比带有 m2e 的 Eclipse 更好吗?

java - 在 Spring Boot 1.4 中不推荐使用 FilterRegistrationBean。*

java - 如何从我的 ArrayList 中删除也在 Java 中的其他 ArrayList 中的对象?

javascript - Spring MVC Ajax请求刷新动态表

java - 将可运行的 Java 类导出到 .jar 文件,仅包括必需的依赖项

java - 同一项目中的多个 android-support-v4 版本