JAR的另一个服务是创建Spring的自动配置(创建名称为'mongoTemplate'的bean时出错)

时间:2019-10-29 18:09:15

标签: java spring-boot spring-mvc mongotemplate

我有一个Java Spring Boot应用程序(称为实用程序服务)和许多其他Java Spring Boot应用程序(称为客户端)。

(实用程序服务和客户端)都使用Spring的自动配置。当我尝试将实用程序服务的JAR放入客户端时,在构建客户端之后,它在bootrun处引发了错误。错误是:

Error creating bean with name 'mongoTemplate' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfiguration.class]: 
Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.data.mongodb.MongoDbFactory]: : 
Error creating bean with name 'mongoDbFactory' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfiguration.class]: 
Unsatisfied dependency expressed through constructor argument with index 0 of type [com.mongodb.MongoClient]: : 
Error creating bean with name 'mongo' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoAutoConfiguration.class]: 
Bean instantiation via factory method failed; 
nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [com.mongodb.MongoClient]: 
Factory method 'mongo' threw exception; 
nested exception is java.lang.NoSuchMethodError: 
org.bson.io.BasicOutputBuffer.<init>(I)V; 

我可以通过在客户端的@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})中应用Application.java来解决此问题。

但是我有很多这样的客户端,并且我不想修改客户端的代码(除非是build.gradle)。

有什么方法可以从公用事业服务中进行修改和实现吗?

1 个答案:

答案 0 :(得分:0)

在任何客户端中包含依赖项时,都可以尝试排除该类。一旦排除了mongoTemplate配置类,在构建客户端服务代码时,它不应出现在您的类路径中。

希望这会有所帮助。