Project/Trouble Shooting

[Swagger] Spring Boot 3.x.x 이상 버전 SpringFox 호환 불가 - Swagger 연동

ryuneng 2025. 1. 22. 00:02
반응형

⚠️ 문제

Spring Boot 3.3.2 버전을 사용하면서 SpringFox와의 호환성 문제로 인해 SwaggerConfig 설정에 오류가 발생했다.


✅ 해결 방법

1. build.gradle 의존성 수정

기존

    implementation 'io.springfox:springfox-boot-starter:3.0.0'
    implementation 'io.springfox:springfox-swagger-ui:3.0.0'

수정

	implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'


2. SwaggerConfig.java 수정

기존

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
                .useDefaultResponseMessages(true)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("패키지명.src"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot API Documentation")
                .description("스프링 부트 API 문서")
                .version("1.0")
                .build();
    }
}

수정

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("Spring Boot API Documentation")
                .description("스프링 부트 API 문서")
                .version("1.0");
    }
}


💡 Swagger 연동 확인

  • 수정 후 서버를 재실행하고 http://localhost:8080/swagger-ui/index.html에 접속하면
    Swagger가 정상적으로 연동된 것을 확인할 수 있다!



Reference

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Swagger-Spring-Boot-3.x.x-이상-버전-SpringFox-호환-불가-Swagger-연동