이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 5 다음 »

Spring Data REST에 Swagger를 추가하면 spring-plugin-core-1.2.0.RELEASE.jar  파일에 대한 충돌 문제가 발생합니다. 이 문제는 Swagger의 버전이 낮아서 생기는 문제이긴 하나 현재 Swagger 3.0 Snapshot 버전을 통해서 해결할 수 있습니다.

우선 이 문제를 해결하기 위해서 Maven POM에 다음의 Repository를 추가합니다.

<repositories>
    <repository>
        <id>jcenter-snapshots</id>
        <name>jcenter</name>
        <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

그리고 난 후 다음과 같이 Swagger Snapshot 버전을 Maven POM에 추가합니다.

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-data-rest</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>

이제 Spring Boot Configuration에 다음을 추가합니다. 참고로 버전업이 되면서 Annotation 명이 @EnableSwagger2WebMvc 으로 변경되었습니다.

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

@Configuration
@EnableSwagger2WebMvc
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any()).build();
    }
}

이제 Spring Boot Application을 실행하고 http://localhost:8080/swagger-ui.html로 접속해봅니다.

  • 레이블 없음