ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring boot3에서 Swagger Springdoc 사용하기 - maven
    자바 2024. 1. 9. 18:26

    swagger fox 대신 doc 쓰는 이유

    • fox는 업데이트 이제 안 됨
    • spring 3 이상의 버전에서는 fox를 쓰면 이러한 에러가 발생
      • 더보기
         
        Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper' at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:287)


        이 오류 로그는 Spring Boot 애플리케이션을 실행하는 동안 발생한 문제를 보여줍니다. documentationPluginsBootstrapper 빈을 시작하는 동안 NullPointerException이 발생했음을 알려줍니다.

        해당 오류는 WebMvcPatternsRequestConditionWrapper 클래스의 getPatterns() 메서드에서 NullPointerException이 발생하고 있습니다. 이는 this.condition이 null일 때 발생하는 문제입니다. 이러한 종류의 예외는 대부분 해당 객체가 초기화되지 않았거나, 적절한 값이 설정되지 않았을 때 발생합니다.

        해당 오류를 해결하기 위해서는 WebMvcPatternsRequestConditionWrapper 클래스와 관련된 설정 또는 빈 구성에 문제가 있을 가능성이 높습니다. 또한 Springfox 또는 Swagger와 관련된 설정에서 문제가 발생할 수 있습니다.

    • doc는 충돌 안 남

     

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.0.2</version>
    </dependency>

    pom.xml에 다음 추가

     

    springdoc:
      packages-to-scan: com.fisa.infra
      default-consumes-media-type: application/json;charset=UTF-8
      default-produces-media-type: application/json;charset=UTF-8
      swagger-ui:
        path: /
        disable-swagger-default-url: true
        display-request-duration: true
        operations-sorter: alpha

    application.yml에 다음 추가하기

     

    import io.swagger.v3.oas.models.Components;
    import io.swagger.v3.oas.models.OpenAPI;
    import io.swagger.v3.oas.models.info.Info;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
     
    @Configuration
    public class SwaggerConfig {
        @Bean
        public OpenAPI openAPI() {
            return new OpenAPI()
                    .components(new Components())
                    .info(apiInfo());
        }
     
        private Info apiInfo() {
            return new Info()
                    .title("Springdoc 테스트")
                    .description("Springdoc을 사용한 Swagger UI 테스트")
                    .version("1.0.0");
        }
    }

    SwaggerConfig.java

     

    '자바' 카테고리의 다른 글

    전략 디자인 패턴  (0) 2024.02.06
    TDD  (2) 2024.01.22
    java 예외처리 throws와 try ~ catch 차이점  (1) 2023.12.13
    stream API + 람다식  (1) 2023.12.12
    annotation 종류  (1) 2023.12.11
Designed by Tistory.