###前言 作为一位菜鸟级的码农,深感知识匮乏之窘境。在为此烦恼之时一朋友向我推荐了
Spring boot
源码系列,站在巨人肩旁上学习之余向大家分享一些学有所得的干货。在了解
Spring Boot
之前可先了解下
什么是Spring Boot 和
Spring Boot与Spring MVC的区别是什么? 从而对
Spring boot
有一个清晰的定位。
我们先看下百度百科的Spring Boot特点介绍
- 简化
Maven
配置,自动配置Spring
、零配置启动- 内置
tomcat
、jetty
、undertow
三大web容器- 将应用打包成为一个
jar
/war
通过jar启动应用
码农的福音战士,简化了开发前期的配置工作,极大的提高了码农们的生产力。 ###单刀主题 Spring Boot的一个及其吸引人的特性是将应用打包成jar
或war
包直接启动。我们可以先了解下jar
解压包的MANIFEST.MF
从启动清单文件中我们知道有两个很重要的参数jar
包启动类Main-Class
及应用程序启动类Start-Class
,其中Start-Class
直指我们程序中的main
函数类Application
在断点进入
Application.class
代码,我们会执行了两个方法:一个是
initialize()
初始化启动参数变量,最重要的是决定是否加载web容器
第二个
run()
加载所需容器并启动
当你的微服务启动成功时你会看到
当你看到你控制台输出
Tomcat started on port(s): 8080 (http)
你会有这样的疑问,我什么web服务器参数都没配置,怎么就占用了
8080
端口启动,接着就会有以下疑问:要是我电脑
8080
端口被占用了
Spring Boot Tomcat
不能正常启动,该怎么配置其他端口或是怎么配置其他个性化的参数。由于篇幅限制这些我都会在下期
Spring Boot 启动原理
解析中详解
Tomcat
加载启动,以及
Spring Boot
是如何加载配置的。 ###末尾 知识源于点滴积累。每当回首过往码农路,他人问我技术问题而不能答上时而深感自行惭愧。与大家分享些技术干货,作为一个自我成长的切入点。本人才疏学浅,写的不对的或分析不够透彻的地方还望大家大刀予以斧正,也欢迎大家关注我的简书见证我的成长,名为
柴码
给自己定一小目标:每两周或一周一更
复制代码