在阅读完back-center源码后,是否注意过,咱们的pom依赖中引用了spring-boot-starter-web,定义了server.port ,同时定义了静态资源,那么这个starter究竟干了什么事情。 ## 回顾back-center中的代码 * 启动端口 ![](https://img.kancloud.cn/e9/a0/e9a030ab2d3d10442271c56ff875abc6_1148x169.png) * 前端代码 ![](https://img.kancloud.cn/85/10/8510afed3cf80a7360258f3552c6de27_1638x768.png) ## server.port ![](https://img.kancloud.cn/de/2e/de2e038b95ae1ddf46b60b27fb7a4539_1742x737.png) * 咱们阅读springboot 代码 ![](https://img.kancloud.cn/ee/40/ee40025f5d8d79991845f1fd74e1f436_1569x486.png) * 找到spring-boot-starter-web 自动装配的程序包 ![](https://img.kancloud.cn/ed/2a/ed2acebad8ed92cc631e23111107ff20_1596x610.png) * 找到ServerProperties ![](https://img.kancloud.cn/d5/6c/d56c9271a255f10cd5da97527eab1706_1418x712.png) * 查找相关依赖 ![](https://img.kancloud.cn/a0/07/a00779586c9457610d751cdf3fb0f037_1062x470.png) * springboot 内置web容器中使用了ServerProperties,至于配置文件的server.port如何映射到ServerProperties,需要关注@ConfigurationProperties,springboot 内置容器将会以配置文件中的server.port启动 ![](https://img.kancloud.cn/68/7e/687e22b092e4e4461d7814e3f349ab1c_1000x869.png) * 启动back-center ![](https://img.kancloud.cn/7d/32/7d32f19b8d3285c1c12dcee4b374c8e4_1902x411.png) ## 静态资源 spring boot 启动如何知道前端的静态资料路径呢?你有没有遇到在springboot项目中放了一个html 报404呢? 下面分析源码。 * 涛声依旧,找到spring-boot-starter-web的源码包 ![](https://img.kancloud.cn/ed/2a/ed2acebad8ed92cc631e23111107ff20_1596x610.png) * 找到相关处理类 ![](https://img.kancloud.cn/a9/d8/a9d8c18070fe1cbc689ad7e261a71dc1_1529x574.png) * 回顾back-center代码,建立联系 ![](https://img.kancloud.cn/82/22/8222bede9c9478eec1e6dc3f2f9a76e4_1361x515.png) ## 内置tomcat处理能力配置情况查询 ![](https://img.kancloud.cn/9b/f5/9bf5e1e1ed36dfe51ee867df0eae1711_1755x762.png) ## 默认tomcat配置 ![](https://img.kancloud.cn/79/1e/791e299e672de6dcb698a22ae57175c0_917x275.png) ## web跳转API ``` redirectStrategy.sendRedirect(request, response, "http://www.baidu.com"); ``` ## request ,response ``` // 获得request对象,response对象 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); HttpServletResponse response = attributes.getResponse(); ``` ## ServletContext ``` ContextLoader.getCurrentWebApplicationContext().getServletContext() ``` 本章主要是说明spring-boot-starter-web启动的其中一部分,希望可以管中规豹,带你理解springboot的一些原理,spring-boot-starter到底做了什么,后面我们会陆续分析。