[Spring Boot] Spring Boot Tutorial #2 - Tomcat Deployment

[Spring Boot] Spring Boot Tutorial #2 - Tomcat Deployment

Goal

  • Spring Boot 어플리케이션을 이용하여 웹 서버에 war 배포 가능
  • 어떻게 war 파일 형태로 만들고, 어떻게 Tomcat 웹서버에 Spring Boot 어플리케이션을 배포하는지 학습


Practice

1. Spring Boot Servlet Initializer

  • Spring Boot 어플리케이션을 배포하기 위학 가장 전통적인 방법은 SpringBootServletInitializer 클래스를 상속하는 것
  • SpringBootServletInitializer 클래스는 Servlet Container에 의해 실행될 때, 어플리케이션을 구성할 수 있다.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package io.dorbae.springboot.tutorial;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/*****************************************************************
 * 
 * TutorialSpringbootApplication.java
 *
 *****************************************************************
 *
 * @version	0.1.0	2019-01-15 18:18:07	dorbae	WAR 배포로 수정
 * @version	0.0.0	2019-01-14 18:18:07	dorbae	최초생성
 * @since 1.0
 * @author dorbae(dorbae.io@gmail.com)
 *
 */
/*
 *  @SpringBootApplication Annotation
 *  	실행될 Spring Boot 어플리케이션의 시작 포인트
 *  	@EnableAutoConfiguration, @ComponentScan, @SpringBootConfiguration Annotation을 포함
 *  @EnableAutoConfiguration Annotation
 *  	JAR dependencies 기반으로 자동으로 application을 설정
 *  @ComponentScan Annotation
 *  	프로젝트에서 추가된 스캔될 컴포넌트를 지정
 */

/*
 * 
 * JAR 형태로 배포
 *
 *	
@SpringBootApplication
public class TutorialSpringbootApplication {
	public static void main( String[] args) {
		SpringApplication.run( TutorialSpringbootApplication.class, args);
	}
}

*/

/*
 * WAR 형태로 배포
 */
@SpringBootApplication
public class TutorialSpringbootApplication extends SpringBootServletInitializer {
	@Override
	protected SpringApplicationBuilder configure( SpringApplicationBuilder application) {
		return application.sources( TutorialSpringbootApplication.class);
	}

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


2. Main Class 설정

  • 빌드 파일에 실행될 main class를 지정해줘야한다.
    • Maven: pom.xml에 추가
    <start-class>io.dorbae.springboot.tutorial.TutorialSpringbootApplication</start-class>
      
    • Gradle: build.gradle에 추가
    mainClassName="io.dorbae.springboot.tutorial.TutorialSpringbootApplication"
      

screenshot001


3. paacking JAR를 WAR에 Update

  • WAR 형태로 배포하기 위해서 아래 항목들을 추가해줘야한다.
    • Maven: pom.xml에 추가
    <packaging>war</packaging>
      
    • Gradle: build.gradle에 추가
    apply plugin: ‘war’
      apply plugin: ‘application’
      

screenshot002


4. REST Endpoint 사용을 위한 Dependencies 수정

  • REST Endpoint를 사용하기 위해서는 spring-boot-starter-web 을 의존성에 추가해줘야한다.
    • Maven: pom.xml에 추가
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
      
    • Gradle: build.gradle에 추가
    dependencies {
      compile('org.springframework.boot:spring-boot-starter-web')
      }
      

screenshot003


5. Packaging Application

  • WAR 파일 Packaging
    • Maven:
    mvn package
      
    • Gradle:
    gradle clean build
      

screenshot004

screenshot005


6. Tomcat에 Deploy

  • $TOMCAT_HOME/webapp에 war 복사

screenshot006


7. 웹브라우저에서 확인

  • http://localhost:8080/[WAR_NAME]/[PATH]

screenshot007


References

댓글남기기

-->