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依赖项)
<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中。澄清你的问题,并提供必要的细节:战争的结构,构建文件。