Failed to process import candidates for configuration class [springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration]

 

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration]; nested exception is java.lang.IllegalArgumentException: Unresolvable class definition for class [springfox.documentation.spring.web.OnServletBasedWebApplication]

 

解决:

https://stackoverflow.com/questions/72870322/failed-to-process-import-candidates-for-configuration-class-springfox-documenta

 

nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name

 

根据bean名称在ide中查找,找到这两个重名的类,可以看到由于这两个类使用@Service标注,此时如果不使用命名,那么Spring会在扫描时,将类名首字母小写作为key,放到一个全局Map中维护。此时,会出现两个键相同的Service,由于Spring不使用覆盖的方式处理具有相同键的不同全类名,所以扫描时提示冲突。

 

https://www.cnblogs.com/zjfjava/p/11654606.html

 
https://copyprogramming.com/howto/annotation-specified-bean-name-conflicts-with-existing-non-compatible-bean-def 
 
另一种结局方案
springboot启动类上:
@ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {xxClass.class}))


然后自定义一个bean的配置类

@Configuration
public class AutoConfig {

    @Bean
    public A anotherA() {
        return new A();
    }
}

 

https://blog.51cto.com/u_13981400/2366121

The BeanDefinitionOverrideException in Spring Boot

https://www.baeldung.com/spring-boot-bean-definition-override-exception

spring.main.allow-bean-definition-overriding=true

posted @ 2023-04-17 18:02  parkdifferent  阅读(3383)  评论(0)    收藏  举报