在不使用@Primary Spring Boot的情况下指定默认的@Bean

时间:2017-03-08 16:22:44

标签: java spring spring-boot

有这样一个bean:

@Bean
TemplateEngine myTemplateEngine() {...}

但Spring引导也有一个用于TemplateEngine的bean:

  

组织/ springframework的/引导/自动配置/ thymeleaf / ThymeleafAutoConfiguration $ ThymeleafDefaultConfiguration.class

当我自动装配TemplateEngine时,我得到了

  

“字段需要一个bean,但找到了2个”

我希望spring boot bean是默认值,只有在指定了explicity时才使用我的bean,所以我无法使用@Primary注释,因为我无法访问该bean定义。

另外,我也想避免使用xml配置。

1 个答案:

答案 0 :(得分:3)

尝试将bean定义为

@Bean
@ConditionalOnMissingBean(TemplateEngine .class)
TemplateEngine myTemplateEngine() {...}