이 섹션에서는 Tomcat Server에 Spring Boot 애플리케이션을 배포하는 방법에 대해 설명합니다.
여기에는 세 가지 단계가 포함됩니다.
- 스프링 부트 애플리케이션을 설정합니다.
- 스프링 부트 WAR를 만듭니다.
- Tomcat에 WAR을 배포합니다.
예제
Tomcat에 배포할 Maven 예를 생성해 보겠습니다.
스프링 부트 애플리케이션을 설정합니다.
1단계: 스프링 Initializr http://start.spring.io을 엽니다.
2단계: 그룹 이름을 입력합니다.
3단계: 아티팩트 ID를 제공합니다. spring-boot-war-deployment-example를 제공했습니다.
4단계: 스프링 웹 종속성을 추가합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
5단계: Generate 버튼을 클릭합니다. 프로젝트와 관련된 모든 사양을 래핑하고 로컬 시스템에 jar 파일을 다운로드합니다.
Tomcat을 사용한 스프링 부트 프로젝트 구축입니다.
6단계: jar 파일의 압축을 풉니다.
7단계: 다음 단계를 사용하여 프로젝트 폴더를 가져옵니다.
파일 -> Import -> 기존 메이븐 프로젝트 -> Next -> Browse -> 프로젝트 폴더 선택 -> Finish
프로젝트를 가져오면 IDE의 패키지 탐색기 섹션에서 다음과 같은 디렉터리 구조를 볼 수 있습니다.
8단계: 패키지 com.xxx에 컨트롤러 클래스를 만듭니다. DemoRestController라는 이름의 클래스를 만들었습니다.
컨트롤러 클래스 내에서 문자열을 반환하는 hello() 메서드를 정의했습니다.
package com.xxx;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoRestController {
@GetMapping("/hello")
public String hello() {
return "Hello User, have a nice day.";
}
}
9단계: SpringBootWarDeploymentExampleApplication.java 파일을 Java Application으로 실행합니다.
10단계: 브라우저를 열고 URL http://localhost:8080/hello를 호출합니다.
다음 단계로 이동하기 전에 응용 프로그램이 올바르게 실행되고 있는지 확인하십시오.
스프링 부트 WAR 생성
Spring Framework의 Servlet 3.0 지원을 사용하며 Servlet 컨테이너가 시작할 때 애플리케이션을 구성할 수 있습니다. 배치를 위한 WAR을 생성하는 세 가지 단계는 다음과 같습니다.
스프링 부트 서블릿을 확장합니다.기본 클래스의 이니셜라이저 클래스입니다.
내장된 서블릿 컨테이너를 제공된 대로 표시했습니다.
패키지 JAR을 다음으로 업데이트합니다.
위의 세 단계를 애플리케이션에 구현해 보겠습니다.
11단계: SpringBootWarDeploymentExampleApplication.java 파일을 열고 Tomcat에 필요한 Servlet 컨텍스트를 초기화합니다. 이를 위해 SpringBootServlet을 확장합니다.이니셜라이저 인터페이스입니다.
public class SpringBootWarDeploymentExampleApplication extends SpringBootServletInitializer
{
}
12단계: 구성 방법을 재정의합니다.
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWarDeploymentExampleApplication.class);
}
package com.xxx;
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;
@SpringBootApplication
public class SpringBootWarDeploymentExampleApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWarDeploymentExampleApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootWarDeploymentExampleApplication.class, args);
}
}
13단계: pom.xml 파일을 열고 서블릿 컨테이너(Tomcat)를 제공된 대로 표시합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
14단계: WAR 파일을 배포해야 하므로 pom.xml 파일에서 패키지 유형을 WAR로 변경합니다.
<packaging>war</packaging>
15단계: 버전 번호가 포함되지 않도록 <finalName> 태그를 사용하여 최종 WAR 파일 이름을 수정합니다. 우리는 웹 서비스라는 이름의 WAR 파일을 만들었습니다.
<finalName>web-services</finalName>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx</groupId>
<artifactId>spring-boot-war-deployment-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring-boot-war-deployment-example</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>web-services</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Tomcat에서 배포할 수 있는 WAR 애플리케이션을 구축하기 위해 maven clean 패키지를 실행합니다. 그 후 WAR 파일은 /target/abc.war(여기서 abc는 아티팩트 ID로 가정)에 생성됩니다. 이 새로운 설정으로 인해 Spring Boot Application은 독립형 애플리케이션이 아니라는 점을 고려해야 합니다.
16단계: 다음 단계를 사용하여 WAR 파일을 만듭니다.
프로젝트 -> 다른 이름으로 실행 -> 5 메이븐 빌드를 마우스 오른쪽 버튼으로 클릭합니다.
구성 편집 대화 상자가 화면에 나타납니다.
17단계: 목표 레이블에 클린 설치를 쓰고 테스트 건너뛰기를 확인합니다. Apply(적용) 및 Run(실행) 버튼을 클릭합니다.
WAR 파일이 성공적으로 생성되면 다음 그림과 같이 WAR 파일 경로와 BUILD SUCCESS 메시지가 콘솔에 표시됩니다.
18단계: 경로를 복사하고 응용 프로그램의 대상 폴더에 액세스합니다. 우리는 우리가 pom.xml 파일에 지정한 이름과 같은 이름의 WAR 파일을 타겟 폴더 안에서 찾았습니다. 이 경우 경로는 다음과 같습니다.
C:\Users\tistory\Documents\workspace-sts-3.9.9.RELEASE\spring-boot-war-deployment-example\target
Tomcat에 WAR 파일을 배포
WAR 파일을 배포하려면 다음 단계를 수행하십시오.
19단계: Apache Tomcat 서버가 설치되지 않은 경우 다운로드하여 설치합니다.
20단계: WAR 파일(web-services.war)을 복사하여 Tomcat의 webapps 폴더에 붙여 넣습니다. 이 경우 웹앱 폴더의 위치는 다음과 같습니다.
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
Tomcat을 사용한 스프링 부트 프로젝트 구축입니다.
21단계: 명령 프롬프트를 열고 다음 명령을 입력합니다.
C:\Cd Program Files\Apache Software Foundation\Tomcat 8.5\bin
C:\Cd Program Files\Apache Software Foundation\Tomcat 8.5\bin>startup
시작 명령은 아래와 같이 Tomcat 서버를 시작하고 WAR 파일을 배포합니다.
다음 이미지는 WAR이 성공적으로 배포되었음을 보여줍니다.
23단계: 브라우저를 열고 URL http://localhost:8080/web-services/hello를 호출합니다. 그것은 Hello User, 좋은 하루 되세요라는 메시지를 반환합니다.
'SW > Spring Boot' 카테고리의 다른 글
Spring Boot : Spring Boot AOP Before Advice 개념, 예제, 개요, 설명 (0) | 2023.03.24 |
---|---|
Spring Boot : Spring Boot AOP 개념, 개요, 설명, 예제 (0) | 2023.03.23 |
Spring Boot : Hello World 예제, 개념, 설명, 개요 (0) | 2023.03.21 |
Spring Boot : Spring Boot Auto-configuration 설명, 예제, 개요, 방법 (0) | 2023.03.20 |
Spring Boot : Spring Boot Packaging 개념, 개요, 설명 (0) | 2023.03.19 |