本文目录

一、项目背景

二、问题描述

 三、问题原因

四、解决方案

方案1:重新命名

方案2:修改配置文件


一、项目背景

今天配置了一个springboot项目,使用swagger2进行前后端分离开发。配置了swagger后竟然发现启动失败。

springboot (v2.1.8.RELEASE) + swagger (v2.8.0)

二、问题描述

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'createRestApi', defined in com.spring4all.swagger.SwaggerAutoConfiguration, could not be registered. A bean with that name has already been defined in class path resource [com/baidu/practice/config/swagger/SwaggerConfig.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

 三、问题原因

在启动项目时,createRestApi这个Bean已经存在,不能被注册。导致启动失败。

四、解决方案

目前想到的解决办法有两个,方案1和方案2,以后如果有新的解决办法再补充进来。也欢迎大家留言说出自己的想法。

方案1:重新命名

重新命名这个实例,例如本此问题把这个(createRestApi)名字改为另一个名字即可。

方案2:修改配置文件

main:
    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册

如下配置为正确的写法

spring:
  application:
    name: test-springboot-service
    system: testspringboot
  main:
    allow-bean-definition-overriding: true # 意思是后来发现的bean会覆盖之前相同名称的bean
  profiles:
    active: local
  servlet:
    multipart:
      max-file-size: 1000MB
      max-request-size: 1000MB

  cloud:
    zookeeper:
      discovery:
        enabled: true
        register: true
        root: /iot-service
      connectString: devl.iot:52500
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

logging:
  config: classpath:logback.xml

完结!

更多推荐

【Java异常】Consider renaming one of the beans or enabling overriding by setting spr