一、问题描述
启动项目 报如下异常
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.sky.SkyApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘shopController’ for bean class [com.sky.controller.user.ShopController] conflicts with existing, non-compatible bean definition of same name and class [com.sky.controller.admin.ShopController]
二、问题解析及解决
这是一个 Spring 框架的异常信息。从错误信息来看,是因为在 Spring 的配置文件中出现了 bean 名称冲突的问题,具体是两个不兼容的 bean 定义了相同的名称 ‘shopController’,分别来自 com.sky.controller.user.ShopController 和 com.sky.controller.admin.ShopController。
要解决这个问题,可以尝试以下几种方法:
修改 bean 的名称:在其中一个 Controller 类的注解中指定不同的 bean 名称,比如 @Component(“userShopController”) 和 @Component(“adminShopController”)。
在配置类中使用 @Primary 或 @Qualifier 注解明确指定首选的 bean。
检查代码,确保同一个名称的 bean 不被定义在不同的配置类中。
三、结束
关于Bean的异常有很多原因,具体要看异常描述,基本上翻译成汉语就是错误的原因,知道错误原因再去找对应解决方案。
任何疑问,欢迎私信指教!
分享:
楚乡留滞一千里,归来落尽李与桃。
残花不共一日看,东风送哭声嗷嗷。
洛池不见青春色,白杨但有风萧萧。
姚黄魏紫开次第,不觉成恨俱零凋。