Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 Spring在组件扫描中未声明时扫描所有控制器_Java_Spring_Component Scan - Fatal编程技术网

Java Spring在组件扫描中未声明时扫描所有控制器

Java Spring在组件扫描中未声明时扫描所有控制器,java,spring,component-scan,Java,Spring,Component Scan,我在春季做一个项目,它由一些小项目和依赖项组成。下面是父项目的简单层次结构: A(一场战争,将公开的其余web服务) B(另一场战争,也将被曝光) C(A和B的罐依赖性) D(A和B的jar依赖项) 下面是my context.xml的一个片段 <context:component-scan base-package="com.mycompany.project.C, com.mycompany.project.D, com.mycompany.proj

我在春季做一个项目,它由一些小项目和依赖项组成。下面是父项目的简单层次结构:

  • A(一场战争,将公开的其余web服务)
  • B(另一场战争,也将被曝光)
  • C(A和B的罐依赖性)
  • D(A和B的jar依赖项)
下面是my context.xml的一个片段

<context:component-scan
        base-package="com.mycompany.project.C, com.mycompany.project.D,
        com.mycompany.project.A"/>

<context:property-placeholder location="classpath:application.properties"/>

<mvc:default-servlet-handler/>
<mvc:annotation-driven/>

每次我部署项目A时,我都会在日志中看到spring也在扫描项目B中的@Controller和@Service。我的问题是它是如何发生的?我的xml配置是否错误?请给我一些建议

*我搜索过类似的问题,但没有找到。如果你找到了,请告诉我,也许我没有仔细搜索


谢谢,我不明白。为什么项目B的类(它是一个独立于a的war)在a.war中?项目B的类不在项目a中。它是不同的项目(但是一个父项目,因为B也需要jar C和jar D)。我不知道为什么spring会把它混在一起。如果这些类不在战争中,spring怎么能扫描它们呢?你是如何部署的?我在开发环境中注意到,更安全的部署方式是重新启动servlet容器。当您这样做时,它会重新启动所有已注册的web应用程序,而不仅仅是您正在使用的应用程序。关于project B控制器和服务的消息是从开始还是从B开始的?@SillySaly Spring不是构建项目并生成war文件的人。如果B最终变成了A.war,那么您需要修复依赖项或构建。目前还不清楚B类或jar是否在A.war中。澄清你的问题,并提供必要的细节:战争的结构,构建文件。