Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 嵌套jar的Spring组件扫描_Java_Spring_Jar_Autowired_Applicationcontext - Fatal编程技术网

Java 嵌套jar的Spring组件扫描

Java 嵌套jar的Spring组件扫描,java,spring,jar,autowired,applicationcontext,Java,Spring,Jar,Autowired,Applicationcontext,基本上,我有一个Outer.jar,它是一个带有组件扫描的应用程序上下文: <context:component-scan base-package="x.y.z.class" /> Outer.jar将inner.jar作为依赖项确保类路径上存在inner.jar(或您命名的任何内容)(通过添加到maven依赖项、eclipse项目设置、使用-cp jvm命令行参数等),只需参考inner.jar中要包含的类的包名即可 还要确保不要混淆jar、基本包和完全限定类名

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

<context:component-scan
        base-package="x.y.z.class" />
Outer.jar将inner.jar作为依赖项

确保类路径上存在inner.jar(或您命名的任何内容)(通过添加到maven依赖项、eclipse项目设置、使用-cp jvm命令行参数等),只需参考inner.jar中要包含的类的包名即可

还要确保不要混淆jar、基本包和完全限定类名。如果我在Blah.jar中有一个类
com.mycolcompany.service.Booya
,通常我只需要

<context:component-scan base-package="com.mycoolcompany.service.*" />


并确保Blah.jar位于父项目的类路径上,前提是您确定jar位于您的类路径下,并且您的类尚未自动连接。

您确定这些类被正确注释了吗?? 因为当你说
组件扫描
时会发生什么,spring会尝试查找带有
@component
注释的类或组件的子类型,如
@Service
,等等

我猜这是您的第三方依赖项,它可能没有注释类。 在这种情况下,您应该在应用程序上下文中手动定义
bean

HTH

我在maven中添加了jar文件,但是它仍然返回未找到的文件。我通过以下方式初始化应用程序上下文:org.springframework.context.ApplicationContext ctx=new ClassPathXmlApplicationContext(“ApplicationContext.xml”);它说inner.jar/x/y/z/class-not-found更新了我的答案,并提供了关于jar、包和class@melt321您能否详细说明如何确保JAR存在于类路径中,并且为组件扫描设置了正确的类包名称?忘记为spring上下文加载程序侦听器设置web.xml了。他现在正在工作。谢谢
<context:component-scan base-package="com.mycoolcompany.service.*" />