느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

기본적으로 Spring Boot는 Jar파일로 배포가 된다. Spring Boot 프로젝트 안에 자체적으로 경량 Embeded WAS가 들어있기 때문에 WAR로 배포되어 외부 WAS에 올려질 필요가 없기 때문이다. 하지만, 나의경우에는 호스팅한 Tomcat 서버에 프로젝트를 올려야 하는 상황이기에 WAR파일이 필요하다. 그래서 Spring Boot에서 WAR 파일을 만드는 방법에 대해 알아보았다.

 

 

@RestController
@SpringBootApplication
public class SpringBootRestApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootRestApplication.class, args);
	}
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {	
		return builder.sources(SpringBootRestApplication.class);
	}
   
}

SpringBootApplication = @Configuration + @ EvableAutoConfiguration + @ComponentScan

 

Spring Boot에서 @SpringBootApplication 어노테이션이 붙은 클래스에서 main 함수를 구현하여 SpringApplication을 run 시키고 있지만 WAR파일로 만들 경우에는 SpringBootServletInitailizer를 상속 및 메서드 configure를 Overriding하여 서블릿의 초기화를 진행하여야 한다.

 

 

 

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<scope>provided</scope>
</dependency>

pom.xml을 열어서 위의 소스코드를 상속관계에 포함시킨다.

 

 

 

<groupId>com.copocalypse.rest</groupId>
<artifactId>SpringBoot-Rest</artifactId>
...
<packaging>war</packaging>

packagin 태그 사이에 war를 포함시켜준다.

 

 

그리고 프로젝트 디렉토리를 우클릭하고 > Run As > Maven Build > [명령어에 clean install 입력] > Run 버튼 클릭

의 순으로 진행하여주면 된다. 그러면 프로젝트내 target 폴더에 war파일이 생성된 것을 확인할 수 있다.

profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!