최근 웹 프로젝트를 Spring Boot 환경으로 개발하는 사례가 늘고 있습니다.
Spring Boot 를 사용할 때의 주의점은, 내장 WAS 가 존재하므로 다른 WAS 에 배포가 필요한 경우 반드시 내장 WAS 를 제거하는 설정을 해주어야 한다는 점입니다.
Spring Boot 프로젝트 생성 후 별다른 작업을 하지 않았을 시 내장 WAS 로 Tomcat 이 기본 동작합니다.
내장 WAS 는 Tomcat 외에 Jetty, Undertow, Netty(webflux) 가 있으므로 현재 설정되어 있는 값을 확인 후 조치합니다.
Spring Boot Application 을 JEUS 에 배포하기 위한 내장 WAS 제거 방법에 대한 가이드 입니다.
Build Tool 에 따라 방법이 다르므로 프로젝트의 Build Tool 에 맞게 진행하시기 바랍니다.
1. Maven 환경
- pom.xml 에 정의되어 있는 내장 WAS 사용 설정을 WAR 빌드 시 제외되도록 설정합니다.
- 내장 Tomcat 의 경우, artifactId 는 spring-boot-starter-tomcat 입니다.
- scope 설정을 provided 로 변경하여, 빌드 시 관련 라이브러리가 포함되지 않도록 합니다.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 내장 WAS 설정 부분 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- scope 를 provided 로 설정 -->
<scope>provided</scope>
</dependency>
</dependencies>
2. Gradle 환경
- build.gradle 에 정의되어 있는 내장 WAS 사용 설정을 WAR 빌드 시 제외되도록 설정합니다.
- dependency 선언을 providedRuntime 으로 변경하여, 빌드 시 관련 라이브러리가 포함되지 않도록 합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
//내장 WAS 설정 부분 : providedRuntime 으로 변경한다
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}
3. SpringBootServletInitializer (SpringApplicationBuilder) 상속, 재정의
- 경우에 따라 Main Class 에 SpringBootServletInitializer 상속 처리가 필요할 수 있습니다.
- 다음과 같이 SpringBootServletInitializer 를 상속 후 SpringApplicationBuilder 메소드를 재정의 합니다.
@RestController
@SpringBootApplication
//SpringBootServletInitializer 를 상속 받아온다.
public class MyApplication extends SpringBootServletInitializer {
@RequestMapping("/")
String home() {
System.out.println("Called!!!");
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
//SpringApplicationBuilder 메소드를 아래와 같이 재정의한다.
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyApplication.class);
}
}
'Middleware > JEUS' 카테고리의 다른 글
JEUS 에 Application 배포하기 (0) | 2023.04.10 |
---|---|
JEUS MS(컨테이너) 추가 방법 (0) | 2023.03.14 |
JEUS 버전 별 JDK 지원 버전, 전자정부프레임워크 지원 버전 리스트 (0) | 2023.03.09 |
JEUS - Apache Commons FileUpload 보안취약점 조치 방법 (CVE-2023-24998) (0) | 2023.03.09 |
JEUS 기동 및 종료 방법 (7 버전 이후) (0) | 2023.03.03 |
댓글