springboot应用启动原理分析.docx
《springboot应用启动原理分析.docx》由会员分享,可在线阅读,更多相关《springboot应用启动原理分析.docx(16页珍藏版)》请在优知文库上搜索。
1、springbootquickstart在springboot里彳艮吸引人的T特性是可以干脆把应用打包成为一Tjar/war,然后这个jar/war是可以干脆启动的,不须要另外配置一个WebServer.假如之前没有运用过springboot可以通过下面的demo来感受下.下面以这个工程为例,演示如何启动Springboot项目:gitclone:hengyuabcspring-boot-demo.gitmvnSpring-boot-demojava-jartargetdemo-.1-SNAPSHOT.jar123假如运用的IDE是springsts或者idea,可以通过向导来创建spring
2、boot项目。也可以参考官方教程:对SPringboot的两个疑问刚起先接触springboot时,通常会有这些疑问 springboot如何启动的? springbootembedtomcat是如何工作的?睁态文件Jsp,网页模板这些是如何加载到?下面来分析springboot是如何做到的打包为单个jar时,springboot的启动方式maven打包之后,会生成两个jar文件:dem-e.I-SNAPSHOTJardemo-0.,1-SNAPSHOTjar.original其中demo0.0.1SNAPSHOT,jar.original是默认的mavenjar-plugin生成的包.dem
3、o-0.0.1SNAPSHOTjar是springbootmaven插件生成的jar包,里面包含了应用的依靠,以及springboot相关的类.下面称之为fatjar.先来直看springboot打好的包的书目结构(不重要的省略掉):I-META-INFII-MANIFEST.MFIapplication.propertiesIcomexampleSpringBootDemoApplication-Class|aopalliance-l.jarIsprlng-beans-4getEntries():publicabstract1.istgetNestedArchives(EntryFiIter
4、filter); 1 2 3 4 5可以看到Archive有f自己的UR1.,比如:jar:-SNAPSHOTJar!/ 1还有一个QetNestedArchives函数,这个实际返回的是demo0.01-SNAPSHOT,jar/lib下面的jar的Archive列表.它们的UR1.是:jar:et0.1-snapshot.jarI/IibZaopalliance-I0.jarjar:).1-SNAPSHOT,jar!libspri11g-beans-4.2.3.RE1.EASE,jarJar1.auncher从MANIFEST.MF可以看到Main函数是Jar1.auncherr下面来分析
5、它的工作流程.Jar1.aUnCher类的继承结构是:classJar1.auncherextendsExecutableArchive1.auncherclassExecutableArchive1.auncherextends1.auncher以demo0.0。1SNAPSHOTjar创建一个ArChiVe:Jar1.aUrKher先找到自己所在的jar,即demoO.0.I-SNAPSHOTjar的路径,然后创建了一个Archive.下面的代码展示了如何从一个类找到它的加载的位置的技巧:protectedfinalArchiveCreateArChiVe()throwsException
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- springboot 应用 启动 原理 分析