org.springframework.context.annotation.ConflictingBeanDefinitionException
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.baidu.web.Application]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'vipController' for bean class [com.baidu.web.controller.VipController] conflicts with existing, non-compatible bean definition of same name and class [com.baidu.api.controller.VipController]
大概意思是你的项目里有 2 个同名的控制器VipController,你仔细检查发现,确实有 2 个同名控制器,但是他们在不同的包下,为啥同名呢?
由于 SpringMVC 并没有配置按照完全限定名来设置 bean 的名称,所以导致同名控制器冲突。
解决办法
1. 为控制器自定义名称
package com.baidu.api.controller
@RestController(value = "ApiVipController")
public class VipController {
}
package com.baidu.web.controller
@RestController
public class VipController {
}
2. 让 Spring 使用完全限定名来定义 bean 的名称
import org.springframework.context.annotation.FullyQualifiedAnnotationBeanNameGenerator;
@SpringBootApplication(scanBasePackages = {}, nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
public class Application {
}

浙公网安备 33010602011771号