01@spring boot 啓動日誌分析

背景

閒來無事,想分析一下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\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;
C:\Users\KevinHu\.m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.4.RELEASE\spring-boot-actuator-autoconfigure-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-actuator\2.0.4.RELEASE\spring-boot-actuator-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.6\jackson-databind-2.9.6.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.6\jackson-core-2.9.6.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.6\jackson-datatype-jsr310-2.9.6.jar;
C:\Users\KevinHu\.m2\repository\io\micrometer\micrometer-core\1.0.6\micrometer-core-1.0.6.jar;
C:\Users\KevinHu\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.10\HdrHistogram-2.1.10.jar;
C:\Users\KevinHu\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.4.RELEASE\spring-boot-starter-web-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.4.RELEASE\spring-boot-starter-json-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.6\jackson-datatype-jdk8-2.9.6.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.6\jackson-module-parameter-names-2.9.6.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.4.RELEASE\spring-boot-starter-tomcat-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.32\tomcat-embed-core-8.5.32.jar;
C:\Users\KevinHu\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.32\tomcat-embed-el-8.5.32.jar;
C:\Users\KevinHu\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.32\tomcat-embed-websocket-8.5.32.jar;
C:\Users\KevinHu\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.11.Final\hibernate-validator-6.0.11.Final.jar;
C:\Users\KevinHu\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;
C:\Users\KevinHu\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-web\5.0.8.RELEASE\spring-web-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-webmvc\5.0.8.RELEASE\spring-webmvc-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-aop\5.0.8.RELEASE\spring-aop-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-expression\5.0.8.RELEASE\spring-expression-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-web-services\2.0.4.RELEASE\spring-boot-starter-web-services-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-oxm\5.0.8.RELEASE\spring-oxm-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\ws\spring-ws-core\3.0.3.RELEASE\spring-ws-core-3.0.3.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\ws\spring-xml\3.0.3.RELEASE\spring-xml-3.0.3.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-swagger2\2.7.0\springfox-swagger2-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\io\swagger\swagger-annotations\1.5.13\swagger-annotations-1.5.13.jar;
C:\Users\KevinHu\.m2\repository\io\swagger\swagger-models\1.5.13\swagger-models-1.5.13.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-spi\2.7.0\springfox-spi-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-core\2.7.0\springfox-core-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-schema\2.7.0\springfox-schema-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-swagger-common\2.7.0\springfox-swagger-common-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-spring-web\2.7.0\springfox-spring-web-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\org\reflections\reflections\0.9.11\reflections-0.9.11.jar;
C:\Users\KevinHu\.m2\repository\com\google\guava\guava\18.0\guava-18.0.jar;
C:\Users\KevinHu\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;
C:\Users\KevinHu\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\mapstruct\mapstruct\1.1.0.Final\mapstruct-1.1.0.Final.jar;
C:\Users\KevinHu\.m2\repository\io\springfox\springfox-swagger-ui\2.7.0\springfox-swagger-ui-2.7.0.jar;
C:\Users\KevinHu\.m2\repository\pl\pojo\pojo-tester\0.7.6\pojo-tester-0.7.6.jar;
C:\Users\KevinHu\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;
C:\Users\KevinHu\.m2\repository\com\googlecode\combinatoricslib\combinatoricslib\2.1\combinatoricslib-2.1.jar;
C:\Users\KevinHu\.m2\repository\org\javassist\javassist\3.22.0-GA\javassist-3.22.0-GA.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-commons\2.0.0.RELEASE\spring-cloud-commons-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-crypto\5.0.7.RELEASE\spring-security-crypto-5.0.7.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-context\2.0.0.RELEASE\spring-cloud-context-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\oauth\spring-security-oauth2\2.3.3.RELEASE\spring-security-oauth2-2.3.3.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-beans\5.0.8.RELEASE\spring-beans-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-core\5.0.8.RELEASE\spring-core-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-jcl\5.0.8.RELEASE\spring-jcl-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-context\5.0.8.RELEASE\spring-context-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-core\5.0.7.RELEASE\spring-security-core-5.0.7.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-config\5.0.7.RELEASE\spring-security-config-5.0.7.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-web\5.0.7.RELEASE\spring-security-web-5.0.7.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;
C:\Users\KevinHu\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;
C:\Users\KevinHu\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;
C:\Users\KevinHu\.m2\repository\net\bytebuddy\byte-buddy\1.7.11\byte-buddy-1.7.11.jar;
C:\Users\KevinHu\.m2\repository\org\flywaydb\flyway-core\5.0.7\flyway-core-5.0.7.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.4.RELEASE\spring-boot-starter-data-jpa-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.4.RELEASE\spring-boot-starter-aop-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.4.RELEASE\spring-boot-starter-jdbc-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-jdbc\5.0.8.RELEASE\spring-jdbc-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\hibernate\hibernate-core\5.2.17.Final\hibernate-core-5.2.17.Final.jar;
C:\Users\KevinHu\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.2.Final\hibernate-jpa-2.1-api-1.0.2.Final.jar;
C:\Users\KevinHu\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;
C:\Users\KevinHu\.m2\repository\org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;
C:\Users\KevinHu\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;
C:\Users\KevinHu\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;
C:\Users\KevinHu\.m2\repository\javax\transaction\javax.transaction-api\1.2\javax.transaction-api-1.2.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\data\spring-data-jpa\2.0.9.RELEASE\spring-data-jpa-2.0.9.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\data\spring-data-commons\2.0.9.RELEASE\spring-data-commons-2.0.9.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-orm\5.0.8.RELEASE\spring-orm-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-tx\5.0.8.RELEASE\spring-tx-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\spring-aspects\5.0.8.RELEASE\spring-aspects-5.0.8.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.2.2.jre8\mssql-jdbc-6.2.2.jre8.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-starter-sleuth\2.0.0.RELEASE\spring-cloud-starter-sleuth-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-starter\2.0.0.RELEASE\spring-cloud-starter-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-rsa\1.0.5.RELEASE\spring-security-rsa-1.0.5.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.56\bcpkix-jdk15on-1.56.jar;
C:\Users\KevinHu\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.56\bcprov-jdk15on-1.56.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-sleuth-core\2.0.0.RELEASE\spring-cloud-sleuth-core-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\aspectj\aspectjrt\1.8.13\aspectjrt-1.8.13.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave\5.1.0\brave-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\zipkin2\zipkin\2.9.3\zipkin-2.9.3.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\reporter2\zipkin-reporter\2.7.3\zipkin-reporter-2.7.3.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-context-log4j2\5.1.0\brave-context-log4j2-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-web\5.1.0\brave-instrumentation-spring-web-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-http\5.1.0\brave-instrumentation-http-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-rabbit\5.1.0\brave-instrumentation-spring-rabbit-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-kafka-clients\5.1.0\brave-instrumentation-kafka-clients-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-httpclient\5.1.0\brave-instrumentation-httpclient-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-httpasyncclient\5.1.0\brave-instrumentation-httpasyncclient-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-spring-webmvc\5.1.0\brave-instrumentation-spring-webmvc-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\io\zipkin\brave\brave-instrumentation-servlet\5.1.0\brave-instrumentation-servlet-5.1.0.jar;
C:\Users\KevinHu\.m2\repository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar;
C:\Users\KevinHu\.m2\repository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar;
C:\Users\KevinHu\.m2\repository\com\companyname\common\common-service-util\1.0.0\common-service-util-1.0.0.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-starter-oauth2\2.0.0.RELEASE\spring-cloud-starter-oauth2-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-starter-security\2.0.0.RELEASE\spring-cloud-starter-security-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\cloud\spring-cloud-security\2.0.0.RELEASE\spring-cloud-security-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.4.RELEASE\spring-boot-starter-security-2.0.4.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\oauth\boot\spring-security-oauth2-autoconfigure\2.0.0.RELEASE\spring-security-oauth2-autoconfigure-2.0.0.RELEASE.jar;
C:\Users\KevinHu\.m2\repository\org\springframework\security\spring-security-jwt\1.0.9.RELEASE\spring-security-jwt-1.0.9.RELEASE.jar;
C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.3.6\lib\idea_rt.jar"
com.companyname.hk.notification.NotificationServiceApplication

先看看命令:

-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

-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52296,suspend=y,server=n
這個命令可以參考Oracle官方文檔

-Ddebug=true 開始debug日誌

-Dserver.port=8090 修改默認的服務端口,默認值是8080.

-javaagent:C:\Users\KevinHu.IdeaIC2018.3\system\captureAgent\debugger-agent.jar
感覺是idea debug需要用到的jar.

-classpath 這個指定了項目啓動要用到的所有jar文件。

最後指定spring boot 的啓動類。 com.companyname.hk.notification.NotificationServiceApplication

備註:沒有去細究啓動jar的依賴關係了。等用到的時候再看吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章