-
Spring Boot | bootWar, war 내,외장 톰캣으로 실행하기▼ Backend/스프링 (Spring) 2023. 2. 27. 17:36반응형
개요
스프링 부트 war 패키징 프로젝트를 bootwar, war로 빌드하여 내장·외장 톰캣으로 실행해본다.
내장·외장 톰캣의 성능
내장·외장 성능에 대해서 유의미한 큰 차이는 없다고 한다. 하지만 외장 톰캣에서 virtual host 같은 기능의 구성 시 간단하게 적용 가능하다.
virtual host
도메인 host에 따라 각각의 다른 루트 컨텍스트를 갖게하여 하나의 웹 애플리케이션 배포만으로 마치 여러 애플리케이션을 운영하는것처럼 하는 기능
bootWar
내장·외장 톰캣 실행 가능
war
외장 톰캣으로만 실행 가능
패키지 구성의 차이
bootWar의 경우, 내장 톰캣으로 실행이 가능 하게 해주는 WEB-INF > lib-provided 구성이 존재한다.
bootWar war WEB-INF WEB-INF META-INF META-INF org 배포 실습
구성 환경
Java 1.8, Spring Boot 2.7.8, Gradle, IntelliJ Community
Spring initializr 프로젝트 환경 -
테스트 컨트롤러 생성
호출 테스트를 위해 컨트롤러를 생성한다.
bootWar 빌드
2가지 방법으로 빌드 할 수 있다. IDE 를 통해 하는 방법과 gradlew 으로 빌드하는 방법을 소개한다.
IntelliJ
gradlew
프로젝트 경로로 이동, 아래 명령어 입력
./gradlew bootWar
bootWar 구조 (/프로젝트/build/libs)
내장 톰캣
실행
CMD 창에서 프로젝트 경로/build/libs 로 이동, 아래 명령어 입력
java -jar toy-0.0.1-SNAPSHOT.war
종료
실행중인 CMD 창 닫기
외장 톰캣
Download 톰캣 설치 -
사용중인 운영체제에 맞는 파일을 다운로드 받는다.
구조
프로젝트 war 파일을 webapps 경로로 이동시킨다. (톰캣 설치 경로/webapps)
server.xml 수정 (톰캣 설치 경로/conf)
Context 추가
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 추가 --> <Context docBase="toy-0.0.1-SNAPSHOT" path="/" reloadable="true" source="org.eclipse.jst.jee.server:toy"></Context> </Host>
실행 (톰캣 설치 경로/bin)
./startup.sh
종료 (톰캣 설치 경로/bin)
./shutdown .sh
war 빌드
2가지 방법으로 빌드 할 수 있다. IDE 를 통해 하는 방법과 gradlew 으로 빌드하는 방법을 소개한다.
IntelliJ
gradlew
프로젝트 경로로 이동, 아래 명령어 입력
./gradlew war
war는 외장 톰캣으로만 실행이 가능하며, 위의 bootWar 외장 톰캣 실행 방식과 동일한 방법으로 실행 가능하다.
반응형'▼ Backend > 스프링 (Spring)' 카테고리의 다른 글
Spring Boot | Prometheus + Grafana 모니터링 (0) 2023.02.10 Spring Boot | Redis로 세션 클러스터링 적용하기 (0) 2023.02.03 Spring | IOC, DI, Bean (0) 2023.01.28 Spring Boot | JPA, 다중 데이터베이스 구성하기 (0) 2022.05.25 Spring Boot | application.properties(yml) 환경에 맞게 분리하기 (0) 2022.05.13