시작하기 전에.. 다음 명령어를 실행하여 유효한 자바와 메이븐 버전이 설치돼 있는지 확인하자!!
java –version / mvn –v
먼저 pom.xml 파일을 만들어야 한다. pom.xml은 프로젝트를 빌드하는 데 사용하는 레시피 같은 존재다.
mvn dependency:tree
프로젝트 의존성 트리를 출력하는 명령어다. 필요한 의존성을 추가하려면 pom.xml을 열어 parent 섹션 바로 아래에 spring-boot-starter-web 의존성을 추가해야 한다.
src/main/java/MyApplication.java
라는 파일에 다음 코드를 작성해보자.
@RestController
@EnableAutoConfiguration
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
여기 코드에서는 꽤 많은 일이 진행되고 있다.
MyApplication 클래스에서 첫 번째로 보이는 어노테이션은 @RestController다. stereotype 어노테이션이라고도 알려져 있다. 이 어노테이션은 코드를 읽는 사람들과 스프링에게 이 클래스가 담당하는 역할이 무엇인지 힌트를 주고 있다.
@RequestMapping 어노테이션은 “라우팅”정보를 제공한다. 이 어노테이션은 스프링에게 /
경로로 오는 모든 HTTP 요청은 home 메소드에 매핑되어야 한다는 점을 알려준다.
두 번째로 보이는 클래스 레벨 어노테이션은 @EnableAutoConfiguration이다. 이 어노테이션은 추가한 jar 의존성에 따라 스프링을 어떻게 구성해야 할지 “추측”하도록 스프링 부트에 지시한다.
애플리케이션에서 마지막으로 주목할 곳은 main 메소드다. 이 메소드는 자바 컨벤션에 따라 애플리케이션 진입점을 나타내는 표준 메소드다. 메인 메소드는 run을 호출함으로써 스프링부트의 SpringApplication 클래스에 위임한다. SpringApplication은 스프링을 시작해 애플리케이션을 부트스트랩하고 그에 따라 자동 설정된 톰캣 웹서버를 시작하게 된다. 우리는 run 메소드에 MyApplication.class를 인자로 전달해서 스프링의 주요 컴포넌트 중 하나인 SpringApplication에 이 클래스를 알려줘야한다. args 배열은 커맨드 라인 인자를 노출하기 위해 함께 전달한다.
mvn spring-boot:run
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.2)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 2.222 seconds (JVM running for 6.514)
웹 브라우저를 하나 열어 localhost:8080
으로 접속하면 다음과 같은 문구가 출력되는 게 보일 것이다.
애플리케이션을 정상적으로 종료하려면 ctrl-c
를 누르면 된다.
실행 가능한 jar는 컴파일된 클래스와 코드를 실행하는 데 필요한 모든 jar 의존성을 함께 가지고 있는 아카이브다.
실행 가능한 jar를 생성하려면 pom.xml에 spring-boot-maven-plugin
을 추가해야 한다. dependencies 색션 바로 아래에 다음 설정을 추가하자.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
pom.xml을 저장하고 커맨드라인에서 다음과 같이 mvn package를 실행하자.
mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.5.2:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
target 디렉토리를 보면 myproject-0.0.1-SNAPSHOT.jar
가 있을 것이다. 이 애플리케이션을 실행하려면 다음과 같이 java –jar
명령어를 사용하자. 애플리케이션을 종료하려면 ctrl-c
를 누르면 된다.