Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL

问题:

        启动项目的时候,报错了

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'apiModelSpecificationReader' defined in URL 
[jar:file:/D:/.gradle/caches/modules-2/files-2.1/io.springfox/springfox-spring-web/3.0.0/a76f2fbe805bfd2798e20dc8f2cfbfad554d52da/springfox-spring-web-3.0.0.jar!/springfox/documentation/spring/web/scanners/ApiModelSpecificationReader.class]: 
Unsatisfied dependency expressed through constructor parameter 0; nested exception is 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 
'springfox.documentation.schema.ModelSpecificationProvider' available: expected at least 1 
bean which qualifies as autowire candidate. Dependency annotations: 
{@org.springframework.beans.factory.annotation.Qualifier(value=cachedModels)}

        检查了下swagger的版本,用的是:

    implementation("io.swagger:swagger-annotations:1.5.20")
    implementation("io.springfox:springfox-swagger2:2.9.2")
    implementation("io.springfox:springfox-swagger-ui:2.9.2")
    implementation("io.springfox:springfox-swagger-common:2.9.2")

        提示却是3.0.0

[jar:file:/D:/.gradle/caches/modules-2/files-2.1/
io.springfox/springfox-spring-web/3.0.0

复制了下路径,检查了下,确实是如此。

Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL_第1张图片

原来是新的项目swagger用的是3.0.0,用的是一样的路径,导致影响。 

处理1:

        把springfox-spring-web目录下的3.0.0目录删了,再启动,是正常的。

        但这样的话,有弄先的项目,又会出问题。

处理2:

        在build.grale文件里面添加:  exclude group: 'io.springfox', module: 'springfox-boot-starter'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    all {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
        exclude group: 'ch.qos.logback'
        exclude group: 'org.apache.solr'
        exclude group: 'io.springfox', module: 'springfox-boot-starter'
    }
}

这样启动就不受影响了。

总结:

        启动报Error creating bean with name 'apiModelSpecificationReader' defined in URL 是版本不一致的问题,加个去除对应模块去处理:exclude group: 'io.springfox', module: 'springfox-boot-starter'

你可能感兴趣的:(错误处理,swagger,apiModelSpeci)