所以当前版本不使用spring-data-mongodb 2.1.0,我需要使用..

问题是每次我只要通过添加简单地覆盖POM中的依赖项

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>


我最终得到一个编译错误:


  org.springframework.beans.factory.BeanCreationException:错误
  创建在类中定义的名称为“ servletEndpointRegistrar”的bean
  路径资源
  [org / springframework / boot / actuate / autoconfigure / endpoint / web / ServletEndpointManagementContextConfiguration $ WebMvcServletEndpointManagementContextConfiguration.class]:
  通过工厂方法实例化Bean失败;嵌套异常为
  org.springframework.beans.BeanInstantiationException:失败
  实例化
  [org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar]:
  工厂方法“ servletEndpointRegistrar”抛出异常;嵌套的
  异常是org.springframework.beans.factory.BeanCreationException:
  创建在类路径中定义的名称为“ healthEndpoint”的bean时出错
  资源
  [org / springframework / boot / actuate / autoconfigure / health / HealthEndpointConfiguration.class]:
  通过工厂方法实例化Bean失败;嵌套异常为
  org.springframework.beans.BeanInstantiationException:失败
  实例化[org.springframework.boot.actuate.health.HealthEndpoint]:
  工厂方法'healthEndpoint'抛出异常;嵌套异常为
  org.springframework.beans.factory.UnsatisfiedDependencyException:
  创建名称为bean的错误
  'org.springframework.boot.actuate.autoconfigure.mongo.MongoHealthIndicatorConfiguration':
  通过构造函数参数0表示不满意的依赖关系;
  嵌套异常为
  org.springframework.beans.factory.UnsatisfiedDependencyException:
  创建在类路径中定义的名称为“ mongoTemplate”的bean时出错
  资源
  [org / springframework / boot / autoconfigure / data / mongo / MongoDataAutoConfiguration.class]:
  通过方法“ mongoTemplate”表达的不满意的依赖性
  参数1;嵌套异常为
  org.springframework.beans.factory.UnsatisfiedDependencyException:
  创建类中定义的名称为“ mappingMongoConverter”的bean时出错
  路径资源
  [org / springframework / boot / autoconfigure / data / mongo / MongoDataAutoConfiguration.class]:
  通过方法表达的不满意依赖性
  'mappingMongoConverter'参数1;嵌套异常为
  org.springframework.beans.factory.BeanCreationException:错误
  创建在类路径中定义的名称为“ mongoMappingContext”的bean
  资源
  [org / springframework / boot / autoconfigure / data / mongo / MongoDataAutoConfiguration.class]:
  Bean初始化失败;嵌套异常为
  java.lang.NoSuchMethodError:
  org.springframework.data.mapping.context.AbstractMappingContext.setApplicationContext(Lorg / springframework / context / ApplicationContext;)V

最佳答案

引自Spring Boot in Action书第37页:


  ...在覆盖引入的依赖项时要小心
  通过Spring Boot启动程序的依赖关系进行传递。虽然不同
  版本可能工作正常,可以提供很大的舒适度
  知道入门者选择的版本是
  经过测试可以很好地一起玩。您只应覆盖这些
  特殊情况下的传递依赖(例如错误修复)
  在较新的版本中)。


我个人不会冒险覆盖spring-data-mongodb版本。

如果您确实需要使用最新版本的spring-data-mongodb,我建议将Spring Boot的版本升级到2.1.0

关于java - Spring Boot父启动器依赖项覆盖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53045206/

10-10 06:50