본문 바로가기

개발일지

SpringBoot / Swagger2 / lombok / Gradle Project 환경 설정

728x90

JPA 부분만 아직 공부가 덜되서 그 부분은 나중에 테스트 하는 것으로 합니다.

우선 아래의 순서대로 진행을 합니다.

 

1. 이클립스 최신버전 다운 받기. 그리고 Java JDK는 1.8 버젼을 설치

    https://www.eclipse.org/   

   Eclipse IDE for Enterprise Java Developers 를 클릭하여 설치를 합니다.

2. Apache Tomcat을 다운받아서 설치합니다.

 

3. eclipse 에 Spring IDE 플러그인 설치하기위하여 Help메뉴에서 Eclipse Marketplace 를 클릭합니다.

아래 그림에서 Spring Tools를 설치합니다.

설치가 완료되면 Help / About Eclipse IDE에서 다음과 같이 Spring IDE가 설치가 되었는것을 확인할 수 있습니다.

 

4. 이클릭습에 Tomcat 서버 설정 하기

 

5. 이제 이클립스를 실행하여 이제 Gradle 프로젝트를 생성합니다.

Gradle 프로젝트 생성
프로젝트명 작성
옵션 체크

생성된 프로젝트는 다음과 같습니다.

 

build.gradle  파일을 아래와 같이 수정합니다.

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java Library project to get you started.
 * For more details take a look at the Java Libraries chapter in the Gradle
 * User Manual available at https://docs.gradle.org/5.4/userguide/java_library_plugin.html
 */

plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'io.spring.dependency-management' version "1.0.8.RELEASE"
}

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {

    // lombok 라이브러리
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
    
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    // swagger2 등록
    api 'org.apache.commons:commons-math3:3.6.1',
        'io.springfox:springfox-swagger2:2.5.0',
        'io.springfox:springfox-swagger-ui:2.5.0'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:27.0.1-jre',
                   'org.springframework.boot:spring-boot-starter-web' 

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'
}

 

build.gradle 파일에서 우클릭하여 Refresh Gradle Project를 합니다.

Refresh Gradle Project를 실행하면 다음과 같이 콘솔에서 BUILD SUCCESSFUL 메시지를 볼 수 있습니다.

 

이제 Application.java 클래스 파일을 생성합니다.

package SHI.Server.Test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableAutoConfiguration
@EnableSwagger2
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 

SwaggerConfig.java 클래스 파일을 생성합니다.

 

package SHI.Server.Test;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
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.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출
                .paths(PathSelectors.ant("/api/**")) // 그중 /api/** 인 URL들만 필터링
                .build();
    }
}

 

현재 까지 작성된 부분으로 Spring Boot를  실행해 보기

Boot Dashboard에서 (Re)start를 실행합니다.

브라우저에서 http://localhost:8080/swagger-ui.html#/ 주소로 스웨거 화면을 확인합니다.

여기까지 되었으면 이제 hello controller 서비스를 작성하여 확인하도록 합니다.

 

Hello.java 를 생성합니다.

 

package SHI.Server.Test.edu;

import lombok.Getter;

@Getter
public class Hello {

    private final long id;
    private final String content;
    
    public Hello(long id, String content) {
        this.id = id;
        this.content = content;
    }
}

 

HelloController.java 를 생성합니다.

 

package SHI.Server.Test.edu;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/api/hello")
    public Hello greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Hello(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

 

이제 모든 작업이 끝났습니다. 다시 Boot Dashboard에서 (Re)start를 실행합니다.

서비스 등록된 화면

간단하게 서비스를 만들었지만 실제 DB연결을 하여 데이터를 가져오는 서비스를 만드는 부분은 아직 공부가 덜되어서 나중에 올리도록 하겠습니다.

 

Git 주소 : https://github.com/sksmail/SpringbootServiceTest

728x90