programing

메서드 apis(java.util.function)입니다.ApiSelectorBuilder 유형의 술어)는 적용되지 않습니다.

css3 2023. 7. 29. 08:49

메서드 apis(java.util.function)입니다.ApiSelectorBuilder 유형의 술어)는 적용되지 않습니다.

@Bean.api 메서드는 아래 오류를 제공합니다.평소처럼 @Beans로 Swagger config 클래스를 추가했습니다.

The method apis(java.util.function.Predicate<springfox.documentation.RequestHandler>) in the type ApiSelectorBuilder is not applicable for the arguments (com.google.common.base.Predicate<springfox.documentation.RequestHandler>)

내 Config 클래스는 다음과 같습니다.

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SpringFoxConfig extends WebMvcConfigurationSupport {                                    
    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage(                                            
                    "package com.sample.controller;"))
                .paths(PathSelectors.any())
                .build();
                                                
    }
}
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
</dependency>

저는 이러한 종속성을 시도했지만 오류가 사라졌습니다.

다음 종속성을 제거합니다.

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

다음을 사용합니다.

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

이 오류는 "springfox-boot-starter" 및 "springfox-swagger-ui" 종속성을 모두 추가하고 해당 버전이 다른 경우에 발생합니다.

"springfox-boot-starter"를 추가하는 경우 명시적인 "springfox-swagger-ui" 종속성을 추가할 필요가 없습니다.

따라서 아래 내용을 추가하고 "springfox-swagger-ui" 종속성을 제거하면 됩니다.

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
</dependency>

이미 올바른 종속성을 가지고 있는 사용자:

 <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
</dependency>

추가해야 할 수도 있습니다.@EnabledWebMvc만약 당신이 그것을 아직 가지고 있지 않다면.

Springfox 설명서:

enter image description here

제거한다.package그리고.;정의할 세미콜론basePackage위해서.apis()

RequestHandlerSelectors.basePackage("com.sample.controller")

그리고 당신의 기본 패키지는com.sample그럼 그것만 사용하세요.

전체 코드:

@Configuration
@EnableSwagger2
public class SpringFoxConfig extends WebMvcConfigurationSupport {                                    
    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sample.controller"))
                .paths(PathSelectors.any())
                .build();
                                                
    }
}

종속성 사용

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

외부 라이브러리에 있는 모든 io.springfox:springfox-* jars의 버전을 확인합니다.여러 버전이 혼합되어 있어야 합니다.springfox-boot-started:3.0.0을 사용하는 경우 제외를 수행하여 다른 버전을 제외합니다.당신은 다른 어떤 봄여우 의존성도 필요하지 않습니다.아래의 문제를 해결했습니다.

      <groupId>com.abc.xyz</groupId>
      <artifactId>alpha-beta-api</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-swagger2</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-swagger-ui</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-spring-web</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

언급URL : https://stackoverflow.com/questions/63194021/the-method-apisjava-util-function-predicatespringfox-documentation-requesthand