排除MongoDataAutoConfiguration时出错

时间:2017-06-09 20:56:45

标签: spring-boot

我试图从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);
    }
}

任何帮助?

感谢。

1 个答案:

答案 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