Spring MVC, Sptring boot

[Spring Boot] 배포 어떤걸로? JAR or WAR

고인돌개발자 2021. 8. 12. 11:42

이 글은 제가 알고 있는 지식내에 있는 내용입니다. (즉, 뇌피셜일수도)

내용은 공식문서를 최대한 확인하는 방식으로 체크했습니다. (나름 오피셜일수도)


스프링 부트를 시작 할려고 https://start.spring.io/ 사이트에 들어갔는데.... 
    결정장애를 일으키는 선택지... Packaging  ● Jar  ○ War 
    웬지 모르지만, Jar 가 디폴트이니 그냥 넘어가고 싶은데... (난 War 가 익숙하고..)

<https://start.spring.io/>


■ 제가 Jar 인지 War 인지 뇌피셜(나름 오피셜)로 결정해 드립니다.

<Pacaging : Jar or War>

* 내가 개발자고, 난 소스만 형상관리(git,svn) 에 올리면 되는 개발자라면,, 고민하지 말고,,
  아무거나 선택하시고 개발에 전념하시는게..


■ 왜 Jar 가 Default 인가 ? (뇌피셜일수도)

Spring boot 가 Jsp 를 멀리하라고 하는 이야기를 들어보셨을 겁니다. [공식문서에 표기]

7.1.9. Template Engines 문서에서 말하기를..
If possible, JSPs should be avoided.

There are several known limitations when using them with embedded servlet containers.

7.4.5. JSP Limitations 문서에서 말하기를...  ( 문서 제목 자체가 Limitations )


전문 - https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications.spring-mvc.template-engines

 

요약해보면
앞으로 우리 Spring boot 진영은 executable jar 를 사용하도록 방향성을 잡고 있는데... 

 jsp  는 jar 에서 사용할 수 없다.그러니, 앞으로는 jsp 를 사용하지 않는게 좋을거다. 
즉, 우리는 앞으로 jar 를 사용하도록 내부 방침을 정했으니, 그리 알아라

 

※ 참고자료 : The Executable Jar Format   ( Executable Jar 와 Executable War 에 대한 문서 )

                  https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html 


■ 근데.. 왜 Spring boot 니가 다 하는것처럼 그러는거야 ??

    Build 는 내 (Maven or Gradle) 영역인데.. 왜 니가 맘대로 정하는거야??    

프로그램 실행은 Java 니가 하지만 (java -jar ~~)
Build (mvn clean package install..) 는 내가 한다.

▶ Maven Jar 문서  : https://maven.apache.org/plugins/maven-jar-plugin/

▶ Maven War 문서 : https://maven.apache.org/plugins/maven-war-plugin/


 

참고Blog : https://hye0-log.tistory.com/27

참고문서 : https://docs.spring.io/spring-boot/docs/current/reference/html/index.html