JSP 템플릿을 사용하여 화면 구성을 하기 위해 기존의 jar 프로젝트에서 war 프로젝트로 변경해보자.
먼저 간단하게 jar와 war의 차이점을 알아보자.
해당 프로젝트는 Gradle 기준으로 변경하였다.
Jar란?
여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스 및 메타데이터를 하나의 파일로 모아서
자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.
JRE(JAVA Runtime Environment)만 있어도 실행 가능하다.
war란?
웹 애플리케이션을 구성하는 자바 클래스, 자바 서버 페이지, 관련 XML 파일 등을 묶은 압축 파일 포맷이다.
원하는 구성을 할 수 있는 Jar와 달리 War는 WEB-INF 및 META-INF 디렉토리로 사전 정의된 구조를 사용한다.
별도의 웹서버(WEB)나 웹 컨테이너(WAS)가 필요하다.
bulid.gradle 수정
1. plugin 추가
plugins {
...
id 'java'
id 'war'
}
2. bootWar 추가
bootWar {
enabled = true
}
3. dependency 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-tomcat'
}
Applicatoin.class 수정
SpringBootServletInitializer를 상속받아서 SpringApplicationBuilder을 오버라이딩 해준다.
@SpringBootApplication
public class TestApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(TestApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
참고
'Spring boot' 카테고리의 다른 글
[Spring Boot] @RequestHeader, Header의 데이터 (0) | 2022.05.05 |
---|---|
[Spring Boot] Validation @Max 와 @Size의 차이 (0) | 2022.04.11 |
[Spring Boot] JPA 조회 작업 findById(), getOne()의 차이 (0) | 2022.03.29 |
[Spring Boot] JPA Caching 적용하기 (0) | 2022.03.21 |
[Spring Boot] PasswordEncoder.mathes() 암호화된 패스워드 비교 (0) | 2022.03.21 |