springboot의 현 권장버전 3.2.5 / jdk 21 / gradle 8.7버전을 사용하다가 널리 퍼져있는 swagger의 2.9.2을 사용법을 적용하니 버전 오류가 발생하더라
따라서 아래 블로그를 참고하여 openapi의 2.0.2 버전으로 이를 해결했다.
[Spring] Spring boot 3.2.0에서 Spring Open API 이용하여 Swagger 적용하기
📂Spring boot 3 이상에서 Swagger 사용하기 이전 프로젝트를 진행할 때, Springfox swagger 의존성을 추가하여서 Swagger를 사용했다. 하지만 이번 프로젝트를 진행할 때는 계속 에러가 났다. 의존성을 추가
velog.io
Swagger태스트를 위한 프로젝트 구성
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '21'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// 스웨거 사용 의존성
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
}
tasks.named('test') {
useJUnitPlatform()
}
SwaggerConfig
package com.example.swaggertest.common;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@OpenAPIDefinition(
info = @Info(title = "Sample API",
description = "Swagger 테스트.",
version = "v1"))
@RequiredArgsConstructor
@Configuration
public class SwaggerConfig{
@Bean
public GroupedOpenApi SampleUserOpenApi() {
String[] paths = {"/study/**"};
return GroupedOpenApi.builder()
.group("com.example")
.pathsToMatch(paths)
.build();
}
}
StudyController
package com.example.swaggertest.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/study")
public class StudyController {
@GetMapping("/test")
public String test(){
return " Hello. World";
}
}
'백엔드 > Spring' 카테고리의 다른 글
spring boot 공식문서 주소 (0) | 2024.04.30 |
---|---|
spring boot의 핵심 라이브러리 (0) | 2024.04.30 |
Gradle의 dependancies (0) | 2024.04.30 |
SNAPSHOT이란? (0) | 2024.04.30 |
Java 1일차에게 Gradle이란? (0) | 2024.04.30 |
댓글