공부/자바
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