背景
闲来无事,想分析一下spring boot 的启动日志。
准备
- 需要有一个spring boot 的样例工程,github上有很多。我用的自己工程的代码。
- 需要加 VM options: -Ddebug=true
启动后,会看到第一行是很长很长的命令。格式化一下如下:
"C:\Program Files\Java\jdk1.8.0_121\bin\java.exe"
-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52296,suspend=y,server=n
-Ddebug=true
-Dserver.port=8090
-javaagent:C:\Users\KevinHu\.IdeaIC2018.3\system\captureAgent\debugger-agent.jar
-Dfile.encoding=UTF-8
-classpath "C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\deploy.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\access-bridge-64.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\cldrdata.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\dnsns.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jaccess.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\jfxrt.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\localedata.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\nashorn.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunec.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunjce_provider.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunmscapi.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\sunpkcs11.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext\zipfs.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\javaws.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfxswt.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jarsa-jdi.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\management-agent.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\plugin.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;
C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;
D:\real-repo\hk-notification-service\hk-notification-service\target\classes;C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.4.RELEASE\spring-boot-starter-actuator-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.4.RELEASE\spring-boot-starter-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot\2.0.4.RELEASE\spring-boot-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.4.RELEASE\spring-boot-autoconfigure-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.4.RELEASE\spring-boot-starter-logging-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;
C:\Users\KevinHu\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;
C:\Users\KevinHu\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;
C:\Users\KevinHu\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;
C:\Users\KevinHu\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;
C:\Users\KevinHu\.m2\repository\javax\anno