资源描述:
《springboot应用启动原理分析-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、springboot应用卅动原理分析-编程开发技术springboot应用启动原理分析原文出处:hengyunabcspringbootquickstart在springboot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个WebServero如果之询没冇使用过springboot口J以通过下面的demo來感受下。F面以这个工程为例,演示如何启动Springboot项目:gitclonegit@github.com:hengyunabc/spring-boo
2、t-demo.gitmvnspring-boot-demojava-jartarget/demo-O.0.1-SNAPSHOT,jar如果使用的IDE是springsts或者idea,町以通过向导来创建springboot项目。也可以参考官方教程:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/对springboot的两个疑问刚开始接触springboot时,通常会有这些疑问•springboot如何启动的?•springboot
3、embedtomcat是如何工作的?静态文件,jsp,网页模板这些是如何加载到的?F面来分析springboot是如何做到的。打包为单个jar时,springboot的启动方式maven打包之后,会生成两个jar文件:demo-0.0.1-SNAPSHOT,jardcmo-0.0.1-SNAPSIIOT.jar.original其屮demo-O.0.1-SNAPSHOT,jar.original是默认的maven-jar-plugin生成的包。demo-0.0.1-SNAPSHOT,jar是springbootmaven插件生成的ja
4、r包,里面包含了应用的依赖,以及springboot相关的类。下面称之为fatjaro先來杳看springboot打好的包的目录结构(不重要的省略掉):
5、META-INF
6、
7、MANIFEST.MF
8、application.properties
9、com
10、1example
11、1SpringBootDemoApplication.class
12、lib
13、
14、aopallianceT.0.jar
15、
16、spring-beans-4.2.3.RELEASE,jar1org1springframework1boot1loader
17、ExccutablcArch
18、ivcLaunchcr.class
19、JarLauncher.class
20、JavaAgentDetector.class
21、LaunchedURLClassLoader.class
22、Launcher,class
23、MeiinMcthodRurmcr.classI—...依次來看下这些内容。MANIFEST.MFManifest-Version:1.0Start-Class:com.example.SpringBootDcmoApplicationlmplementation-Vendor-ld:com.exampleSpring-Boot-
24、Version:1.3.0.RELEASECreated-By:ApacheMaven3.3.3Build-Jdk:1.8.0_60Implcmcntation-Vendor:PivotalSoftware,Inc.Main-Class:org.springframework.boot,loader.JarLauncher可以看至U冇Main-Class是org・springframework・boot・loader・JarLauncher,这个是jar启动的Main函数。还有一个Start-Class是com.example.Spr
25、ingBootDemoApplication,这个是我们应用自己的Main函数。@SpringBootApplicationpublicclassSpringBootDemoApplication{publicstaticvoidmain(String[]args){SpringApplication,run(SpringBootDemoApplication,class,args);}}com/example目录这下面放的是应用的.class文件。lib目录这里存放的是应用的Maven依赖的jar包文件。比女I丨spring-bea
26、ns,spring-mvc等jar0org/springframework/boot/loader目录这卜面存放的是Springbootloader的.class文件。Archive的概念•archive即归档文件,这个