본문 바로가기

Spring

JAR 파일 구조

728x90
반응형

Spring-boot-loader

모듈은 실행가능한 jar와 war파일을 생성해준다. 

maven이나 gradle을 사용한다면 쉽게 생성할 수 있다. 

세부적으로 어떻게 동작하는지 구체적으로 알 필요는 없다.

 

JAVA는 중첩된  jar파일을 로드하는 기준을 제공하지 않는다.

따라서 스프링부트가 지원하는 방법은 아래와 같다. 

 

실행가능한 JAR파일 구조

 

example.jar
 |
 +-META-INF
 |  +-MANIFEST.MF
 +-org
 |  +-springframework
 |     +-boot
 |        +-loader
 |           +-<spring boot loader classes>
 +-BOOT-INF
    +-classes
    |  +-mycompany
    |     +-project
    |        +-YourClasses.class
    +-lib
       +-dependency1.jar
       +-dependency2.jar

어플리케이션 클래스들은 BOOT-INF/classes 디렉터리에 있다.

의존성을 가지는 파일들은 BOOT-INF/lib에 있다.

 

JarFile

스프링부트는 org.springframework.boot.loader.jar.JarFile 를 통해 표준 jar파일을 읽어올 수 있다. 

 

Launching Executable Jars

org.springframework.boot.loader.Launcher 클래스는 실행가능한 jar의 기본 진입점으로 사용되는 

부트스트랩 클래스이다.

Main-class jar파일의 실제 파일이다. 

세 가지 실행 서브 클래스가 있다(JarLauncher, WarLauncher, PropertiesLauncher)

 

JarLauncher : BOOT-INF/lib

WarLauncher : WEB-INF/lib

PropertiesLauncher : BOOT-INF/lib

 

 

728x90
반응형