반응형

Spring boot with Embedded Timcat 동작 원리
Jar 파일 boot 구조
- 일반적으로 Execuexecutable jar 는 META-INF의 MANIFEST.MF의 Main-Class를 실행
Jar / root

META-INF

MANIFEST.MF
Manifest-Version: 1.0
Created-By: Maven Jar Plugin 3.2.0
Build-Jdk-Spec: 11
Implementation-Title: xxxx-xxx-xxx
Implementation-Version: 0.0.1-SNAPSHOT
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.xx.yyy.xxx.XxxxxWebfluxApplication
Spring-Boot-Version: 2.4.3
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
MANIFEST를 확인해보면 main 클래스를 org.springframework.boot.loader.JarLauncher 로 잡고있다.
JarLauncher
- Launcher를 최종 구현한 클래스
- 이 Launcher를 통해서 context를 구성한다
Launcher Class
protected void launch(String[] args) throws Exception {
JarFile.registerUrlProtocolHandler();
ClassLoader classLoader = createClassLoader(getClassPathArchives());
launch(args, getMainClass(), classLoader);
}
createClassLoader()
- 해당 메서드를 통해 LaunchedURLClassLoader를 생성하며 URLClassLoader를 상속 받으며, parent로 SystemClassLoader (AppClassLoader)를 갖는다
반응형
'개발 일지' 카테고리의 다른 글
DID 란 (0) | 2022.11.25 |
---|---|
Spring TransactionEventListener (0) | 2022.11.23 |
MDC 란 (0) | 2022.11.23 |
QuerydslPredicate 란 (0) | 2022.11.23 |
Nginx vs HAProxy (0) | 2022.11.23 |