우와한 개발자

[ Spring ] Spring Boot 배포 방식 – JAR vs WAR, 외부 톰캣 배포

by 우와한개발자

1. JAR 배포 (Spring Boot 기본)

  • Spring Boot 내장 톰캣이 포함되어 있어 별도 서버 없이 실행.
  • Spring Boot 프로젝트의 기본 패키징 방식
java -jar myapp.jar

 

2. WAR 배포 (외부 톰캣 서버에 배포)

  • 설치된 외부 톰캣 서버에 배포하겠다는 의미.
  • WAR 파일을 톰캣의 webapps/ROOT 폴더에 넣으면 자동으로 배포됨.
톰캣설치경로/webapps/ROOT/myapp.war

 

1) JAR 프로젝트를 WAR로 바꾸기

  • pom.xml에서 패키징 방식을 변경.
<!-- 변경 전 -->
<packaging>jar</packaging>

<!-- 변경 후 -->
<packaging>war</packaging>
  • SpringBootServletInitializer를 상속해야 외부 톰캣에서 정상 동작.
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyApplication.class);
    }

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

 

3. JAR 와 WAR 배포 비교

구분 JAR WAR
실행 방법 java -jar myapp.jar 톰캣 webapps에 배포
서버 내장 톰캣 포함 외부 톰캣 필요
용도 클라우드, 단독 실행 기존 서버 인프라 활용
Spring Boot 기본 O 설정 변경 필요

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기