Spring Boot项目没有在另一个spring mvc项目中自动装配服务

时间:2018-05-24 04:31:55

标签: spring spring-mvc spring-boot

我有两个Spring boot和spring mvc项目。我想获得spring mvc项目的服务。 Spring启动项目作为客户端工作。我在spring boot项目的pom.xml中添加了spring mvc项目名称作为依赖项。然后我可以调用spring mvc项目的方法,但它的内部服务没有自动装配。

当我在调试时查看它时,

以下服务为null。

@Autowired
    PriceResultService priceResultService; --null

    @Autowired
    PriceFactorService priceFactorService; --null

    @Autowired
    OptionalExtrasService optionalExtrasService; --null

    @Autowired
    BaseCommonRulesService baseCommonRulesService; --null

    @Autowired
    BasePartyTypeRulesService basePartyTypeRulesService; --null

    @Autowired
    MedicalCommonRulesService medicalCommonRulesService; --null

    @Autowired
    OptionalExtraRulesService optionalExtraRulesService; --null

    @Autowired
    CoverLimitRulesService coverLimitRulesService; --null

如何解决,

1 个答案:

答案 0 :(得分:2)

您必须添加mvc模块以扫描类路径。

@SpringBootApplication(scanBasePackageClasses = {YourSpringBootApplication.class, YourMVCClassInRootPackage.class})
public class YourSpringBootApplication {

}

假设您的MVC模块如下:

/com/path/
   DummyBean.class
/com/path/child1/
   AnotherBean.class
   AnotherBeanX.class
   AnotherBeanY.class
/com/path/child2
   AnotherBean2.class
   AnotherBeanZ.class

然后您选择YourMVCClassInRootPackageDummyBean

如果您的MVC模块如下:

/com/path/child1/
   AnotherBean.class
   AnotherBeanX.class
   AnotherBeanY.class
/com/path/child2
   AnotherBean2.class
   AnotherBeanZ.class

在最顶层的软件包中没有类,因此您要么在顶层软件包中创建DummyBean.java(例如/com/path/DummyBean),要么包括所有AnotherBeanAnotherBean2来扫描类路径。 (为每个包选择一个类)