민뭉아치
민뭉아치
민뭉아치
전체 방문자
오늘
어제
  • 분류 전체보기 (62)
    • ㅁㅁㅇㅊ's Life (0)
      • Diary (1)
      • Certification (6)
      • English (1)
      • 독서 (1)
    • Algorithm (25)
    • Web (2)
    • Language (3)
      • JavaScript (1)
      • JAVA (2)
    • Spring boot (9)
    • Cloud (0)
    • DevOps (1)
    • Trouble Shooting (6)
    • 개발환경 (3)
    • 짤막IT지식 (4)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록

공지사항

인기 글

태그

  • Algorithm
  • Java
  • 백준
  • 자격증
  • 정보처리기사
  • Spring
  • 백준알고리즘
  • 코딩테스트
  • 자바
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
민뭉아치

민뭉아치

Spring boot

[Spring boot] 배포 패키징 jar 에서 war로 변경

2022. 4. 10. 02:33

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);
	}

}

 

참고

 

[Java] JAR WAR 차이점 및 특징 ( + EAR )

JAR (Java Archive) WAR (Web Application Archive) 모두 JAVA의 jar 툴을 이용하여 생성된 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성파일 등).

ifuwanna.tistory.com

 

SpringBoot 배포 jar -> war로 변경

스프링부트 배포시 일반적으로 내장톰캣을 사용할 경우 jar로 배포한다. 그러나 외장톰캣을 사용하든 내장...

blog.naver.com

 

반응형

'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
    'Spring boot' 카테고리의 다른 글
    • [Spring Boot] @RequestHeader, Header의 데이터
    • [Spring Boot] Validation @Max 와 @Size의 차이
    • [Spring Boot] JPA 조회 작업 findById(), getOne()의 차이
    • [Spring Boot] JPA Caching 적용하기
    민뭉아치
    민뭉아치
    Do Better Today Than You Were Yesterday

    티스토리툴바