SpringBoot 시작하기 1. SpringBoot에서 Hello World REST API

12291 단어 SpringBoot자바

소개



지난번 SpringCLI에서 HelloWorld REST API를 만들었기 때문에
이번에는 Eclipse 프로젝트에서 Spring 프로젝트를 작성하여 Hello World REST API 앱을 작성해 본다.

환경




소프트웨어
버전


OS
Windows10 Pro

자바
JDK12

이클립스
2020-12 M1

SpringBoot
2.4.0

Spring Tool Suite (STS)
4.8.1


구현



1. Eclipse 얻기



우선은 Eclipse의 입수로부터.
Pleiades 페이지에서 Eclipse 최신 버전 (2020-12)을 얻습니다.
이 Eclipse에는 처음부터 Spring Tool Suite (STS) 4.8.1 플러그인이 들어있다.

2. Spring용 프로젝트 작성



Eclipse를 시작하고 패키지 탐색기에서 마우스 오른쪽 버튼 클릭 → 새로 만들기 → 기타를 선택합니다.
아래의 윈도우가 표시되므로 [Spring Boot] → [Spring Starter Project]를 선택.



다음 프로젝트 설정.
이름을 「HelloSpring」로 해, 형태에 Gradle를 지정.
그 외, 이하와 같다.



종속 라이브러리 지정.
이번에는 HelloWorld를 반환하는 REST API 만 있기 때문에
특히 필요한 도서관은 없다.
[완료] 버튼을 누릅니다.



그러면 다음 구성의 프로젝트 리소스가 생성됩니다.


HelloSpringApplication.javabuild.gradle의 내용은 이런 느낌.

HelloSpringApplication.java
package com.example.demo;

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

@SpringBootApplication
public class HelloSpringApplication {

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

}

build.gradle
plugins {
    id 'org.springframework.boot' version '2.4.0'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '12'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

build.gradle에는 SpringBoot 플러그인과 종속성이 추가되었습니다.

3. REST Controller 클래스 작성



HTTP 요청을 받아들이고 "Hello World!"와 "Hello SpringBoot!"를 반환하는 사용자 엔드 포인트 인 Controller 클래스를 만듭니다.
지난번로 만든 REST Controller 클래스를 유용.

HelloController.java
package com.example.demo;

@RestController
public class HelloController {

    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }

    @RequestMapping("/sb")
    public String helloSp() {
        return "Hello SpringBoot!";
    }

}

그러면 @RestController@RequestMapping를 참조 할 수없는 오류가 발생합니다.
Spring Boot 단체로는 최소한의 Spring 어플리케이션용 클래스 밖에 들어 있지 않다고 하는 것 같다.@RestController@RequestMapping는 SpringMVC의 주석입니다.

REST API를 만들고 싶다면 라이브러리 spring-boot-starter-web를 종속성에 추가하는 것이 좋습니다.
위의 SpringMVC 클래스군에 가세해 Tomcat나 Jackson과 같은 라이브러리도 붙어 온다는 것.
아무래도 REST API 작성을 위해서 필요한 것이 갖추어질 것 같은 느낌의 것이므로 조속히 Gradle의 설정 파일에 의존관계를 추가.

gradle.build
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    //↓これを追加
    implementation 'org.springframework.boot:spring-boot-starter-web'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

방금 전 HelloControllerクラス에 import 문을 추가하여 완성.

HelloController.java
package com.example.demo;

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

@RestController
public class HelloController {

    @RequestMapping("/")
    public String home() {
        return "Hello World!";
    }

    @RequestMapping("/sb")
    public String helloSp() {
        return "Hello SpringBoot!";
    }

}

4. 실행



조속히 Spring 어플리케이션을 움직여 보자.
gradle bootRunタスク 실행.
Eclipse 위에서 아래를 더블 클릭하면 된다.



그러면 콘솔에 다음과 같이 표시됩니다.
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootRunMainClassName UP-TO-DATE

> Task :bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.0)

2020-11-23 13:46:19.374  INFO 7004 --- [           main] com.example.demo.HelloSpringApplication  : Starting HelloSpringApplication using Java 12.0.2 on xxxxxxxx with PID 7004 (M:\develop\tools\eclipse\pleiades-2020-12\workspace\HelloSpring\build\classes\java\main started by xxxxx in M:\develop\tools\eclipse\pleiades-2020-12\workspace\HelloSpring)
2020-11-23 13:46:19.376  INFO 7004 --- [           main] com.example.demo.HelloSpringApplication  : No active profile set, falling back to default profiles: default
2020-11-23 13:46:20.040  INFO 7004 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-11-23 13:46:20.045  INFO 7004 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-11-23 13:46:20.046  INFO 7004 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.39]
2020-11-23 13:46:20.088  INFO 7004 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-11-23 13:46:20.088  INFO 7004 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 689 ms
2020-11-23 13:46:20.177  INFO 7004 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-11-23 13:46:20.273  INFO 7004 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-11-23 13:46:20.279  INFO 7004 --- [           main] com.example.demo.HelloSpringApplication  : Started HelloSpringApplication in 1.115 seconds (JVM running for 1.335)

이 상태에서 다음에 액세스하십시오.
  • http://localhost:8080/
  • http://localhost:8080/sb

  • 오~ 할 수 있었다! 했어

    요약



    이번에는 SpringBoot와 SpringMVC를 사용하여 REST API를 깔끔하게 만들었습니다.
    어떤 부분이 Boot 부분에서 어떤 역할을 하는지
    분명히 이해하는 것이 좋을 것 같은 생각이 들었다.

    그 근처는 또 이번.

    참고



    스프링 부트 스타터 입문

    좋은 웹페이지 즐겨찾기