我试图从spring-boot项目中排除mongoDB自动配置,但我一直有这样的错误:
Method mvcConversionService in org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport required a bean named 'mongoTemplate' that could not be found.
配置:
@SpringBootApplication
@EnableAutoConfiguration(exclude = {MongoDataAutoConfiguration.class})
public class ChromeDataCoreApplication {
public static void main(String[] args) {
SpringApplication.run(ChromeDataCoreApplication.class, args);
}
}
任何帮助?
感谢。
答案 0 :(得分:0)
我发现在我的情况下我有一个用@Repository
注释的接口,即使没有任何依赖它,Spring Boot仍然创建了它并尝试连接到Mongo数据库。
WebMvcConfigurerComposite#addFormatters
尝试添加HateoasAwareSpringDataWebConfiguration
,而mongoTemplate
则需要@ConditionalOnProperty(name = "mongo.enabled", havingValue = "true")
bean。为了解决这个问题,我能够在我的存储库界面上添加注释:
HateoasAwareSpringWebConfiguration
要从addFormatters
中使用的代理列表中删除@SpringBootApplication
bean,可以将以下内容添加到@SpringBootApplication(exclude = {org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration.class})
:
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, SpringDataWebAutoConfiguration.class})
当然我还包括Mongo自动配置的两个类:
@ConditionalOnProperty
我应该注意,一旦将SpringDataWebAutoConfiguration.class
注释添加到存储库界面,就不再需要formData
。