ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링부트 2.6 과 Swagger-ui 가 호환 안되는 문제
    Spring 2022. 4. 26. 17:49

    스프링 부트 2.6 으로 진행하는 프로젝트에서 스웨거를 적용하려는 문제가 발생하였다.

    NullPointerException 이 나면서 springfox가 DI 되지 않는것 같은데 스프링 부트 2.6과 springfox가 호환되지 않는것 같다.

     

     

    @Component
    public class SwaggerConfig extends WebMvcConfigurationSupport {
        @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { 
            registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); 
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); 
        }
        
        ....생략
        
    }

     

    SwaggerConfig 에 WebMvcConfigurationSupport 를 상속받아서 

    addResourceHandlers 를 오버라이딩 한 후 스웨거가 적용이 되었다.

     

    하지만, WebMvc 의 함수를 오버라이딩해서 페이징이 안되는 문제가 생겼다.

    spring boot 버전을 바꾸면 springfox가 호환이 잘 될테지만 협업 중이라 어떤 문제가 생길지 모르기 때문에

    검색 후 springdoc 으로 적용을 해보았다.

     

    build.gradle 

    implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.6.4'

     

    SwaggerConfig.java

    @Component
    public class SwaggerConfig {
    
    
        @Bean
        public OpenAPI openAPI() {
            Info info = new Info().title("For-rest API").version("1")
                    .description("https://for-rest.herokuapp.com/")
                    .license(new License().name("© 2022. for-rest back").url("https://github.com/Couch-Coders/7th-for_rest-be"));
    
            return new OpenAPI()
                    .components(new Components())
                    .info(info);
        }
    
    
    
    }

     

    springdoc 으로 스웨거를 적용하니 스프링 부트 2.6 에서도 가능하다.

    'Spring' 카테고리의 다른 글

    에러핸들링 : GlobalExceptionHandler  (0) 2022.04.28
    페이징 처리  (0) 2022.04.26
    API 명세서  (0) 2022.04.19
    ERD 설계  (0) 2022.04.19
    협업 프로젝트 시작  (0) 2022.03.22
Designed by Tistory.