所以当前版本不使用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/