4. Spring docs 시작하기

2023. 12. 13. 21:40카테고리 없음

 

 

 

build.gradle프로젝트를 빌드하는 데 사용되는 빌드 스크립트

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.2.0'
}

apply plugin: 'io.spring.dependency-management'

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

repositories {
    mavenCentral()
}

dependencies {
}

 

 

Gradle

대부분의 Spring Boot 애플리케이션은 org.springframework.bootGradle 플러그인을 사용한다.

$ gradle dependencies

> Task :dependencies

------------------------------------------------------------
Root project 'myproject'
------------------------------------------------------------
 
 

코드 작성

애플리케이션을 완료하려면 단일 Java 파일을 생성해야 한다. 기본적으로 Maven과 Gradle은

.src/main/java/MyApplication.java 에서 소스를 컴파일하므로 해당 디렉터리 구조를 만든 후 다음 코드를 포함하는 src/main/java이름의 파일을 추가해야 한다.

package com.example;

@RestController
@SpringBootApplication
public class MyApplication {

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

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

}

코드가 많지 않지만 꽤 많은 일이 진행되고 있다.

 

@RestController 및 @RequestMapping 주석

@RestController

스테레오 타입. 우리 클래스는 web이므로 @ControllerSpring은 들어오는 웹 요청을 처리할 때 이를 고려한다.

 

@RequestMapping

"라우팅" 정보를 제공한다. 이는 경로가 포함된 모든 HTTP 요청이 메서드 /에 매핑되어야 함을 Spring에 알려준다. @RestControllerSpring에게 결과 문자열을 호출자에게 직접 다시 렌더링하도록 지시한다.

 
 
@SpringBootApplication

@SpringBootConfiguration, @EnableAutoConfiguration및 @ComponentScan 결합한다.


예제 실행

애플리케이션을 시작하려면 루트 프로젝트 디렉터리에서 bootRun입력한다.

$ gradle bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v3.2.0)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.906 seconds (process running for 6.514)
 
Hello World!

 


실행 가능한 Jar 만들기

프로덕션 환경에서 실행할 수 있는 완전히 독립적인 실행 가능한 jar 파일을 생성한다. 실행 가능한 jar("uber jar" 또는 "fat jar"라고도 함)는 코드를 실행하는 데 필요한 모든 jar 종속성과 함께 컴파일된 클래스를 포함하는 아카이브다.

 

 

디렉토리를 보면 myproject-0.0.1-SNAPSHOT.jar target 표시되어야 한다. 파일 크기는 약 18MB이다. 내부를 보고 싶다면 다음과 같이 jar tvf 를 사용할 수 있다.

$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
 

 

해당 애플리케이션을 실행하려면 다음 명령을 사용하면 된다.

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v3.2.0)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.999 seconds (process running for 1.253)
 

이전과 마찬가지로 응용 프로그램을 종료하려면 ctrl-c를 누른다.

 

 
Gradle 에서

 

실행 가능한 jar를 생성하려면 다음과 같이 명령줄에서 실행해야 한다 .

$ gradle bootJar

BUILD SUCCESSFUL in 639ms
3 actionable tasks: 3 executed
 

디렉토리를 보면  build/libs 에 myproject-0.0.1-SNAPSHOT.jar 가 표시되어야 한다. 파일 크기는 약 18MB. 내부를 보고 싶다면 다음과 같이  jar tvf를 사용할 수 있다.

$ jar tvf build/libs/myproject-0.0.1-SNAPSHOT.jar
 

해당 애플리케이션을 실행하려면 java -jar다음 명령을 사용한다.

$ java -jar build/libs/myproject-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v3.2.0)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.999 seconds (process running for 1.253)
 

이전과 마찬가지로 응용 프로그램을 종료하려면 ctrl-c를 누른다.