问题描述:

Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'beanNameViewResolver' defined in class path resource [cn/afterturn/easypoi/configuration/EasyPoiAutoConfiguration.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=cn.afterturn.easypoi.configuration.EasyPoiAutoConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [cn/afterturn/easypoi/configuration/EasyPoiAutoConfiguration.class]] for bean 'beanNameViewResolver': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; factoryMethodName=beanNameViewResolver; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]] bound.

问题分析:

1、SpringBoot 集成 EasyPoi ,在启动初始化容器时发现有同名的 bean ,导致报错。

解决办法:

        在 application.yml 配置 spring.main.allow-bean-definition-overriding 设置为 true ,自动覆盖同名的 bean 。 

spring:
  main:
    allow-bean-definition-overriding: true

更多推荐