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 {
}
대부분의 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에게 결과 문자열을 호출자에게 직접 다시 렌더링하도록 지시한다.
@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를 누른다.
실행 가능한 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를 누른다.