Nicksxs's Blog https://nicksxs.me/icon.png What hurts more, the pain of hard work or the pain of regret? 2023-12-17T11:17:52.934Z https://nicksxs.me/ Nicksxs Hexo Tomcat 系列篇十二-番外介绍下 Tomcat 的上传文件限制 https://nicksxs.me/2023/12/17/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81%E4%BA%8C-%E7%95%AA%E5%A4%96%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E7%9A%84%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6/ 2023-12-17T11:17:52.000Z 2023-12-17T11:17:52.934Z <p>最近同学在把 springboot 升级到 2.x Tomcat 系列篇十一-介绍下 Tomcat 里的后台处理和热加载 https://nicksxs.me/2023/12/10/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81%E4%B8%80-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84%E5%90%8E%E5%8F%B0%E5%A4%84%E7%90%86%E5%92%8C%E7%83%AD%E5%8A%A0%E8%BD%BD/ 2023-12-10T12:28:28.000Z 2023-12-10T12:28:28.303Z <p>这部分其实之前在讲线程池的时候也有点带到了, 主要是在这个类里<br><code>org.apache.catalina.core.ContainerBase.ContainerBackgroundProcessor</code></p> <pre Windows 莫名重启问题解决 https://nicksxs.me/2023/12/03/Windows-%E8%8E%AB%E5%90%8D%E9%87%8D%E5%90%AF%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/ 2023-12-03T11:54:34.000Z 2023-12-03T11:54:34.680Z <p>之前在 Windows 里用 vmware workstation 搭了个黑裙,然后硬盘直通,硬盘跑着倒还好,但是宿主机 Windows 隔一段时间就会重启,就去搜索了下,发现其实 Windows 里的事件查看器就有点像是 Linux 系统里的 dmesg 或者 Tomcat 系列篇十-介绍下 Tomcat 里的 Mapper 作用 https://nicksxs.me/2023/11/26/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%8D%81-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84-Mapper-%E4%BD%9C%E7%94%A8/ 2023-11-26T11:02:21.000Z 2023-11-26T11:02:21.316Z <p>Mapper 顾名思义是作一个映射作用,在 Tomcat 中会根据域名找到 host 组件,再根据 uri 可以找到对应的 context 和 wrapper 组件,但是对于当前这个环境 (Springboot) 会有一点小区别<br>之前说到<br>请求会经过 Tomcat 系列篇九-介绍下 Tomcat 里的 ContainerBase https://nicksxs.me/2023/11/19/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B9%9D-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84-ContainerBase/ 2023-11-19T13:15:56.000Z 2023-11-19T13:16:29.095Z <p>前面介绍过 Tomcat 的层次结构,</p> <pre class="line-numbers language-markup" data-language="markup"><code class="language-markup"><span 记录下一次服务器迁移 https://nicksxs.me/2023/11/12/%E8%AE%B0%E5%BD%95%E4%B8%8B%E4%B8%80%E6%AC%A1%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB/ 2023-11-12T12:19:00.000Z 2023-11-12T12:19:58.559Z <p>因为服务器续费即使是这次双十一还是太贵了,之前在 tx 买的三年 2c4g 3m 的一台服务器,原来价格是三年 800+,现在续费三年要 Tomcat 系列篇八-介绍下 Tomcat 里的线程池用处 https://nicksxs.me/2023/11/05/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%85%AB-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Tomcat-%E9%87%8C%E7%9A%84%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%94%A8%E5%A4%84/ 2023-11-05T11:38:56.000Z 2023-11-05T11:38:56.345Z <p>线程池在 Tomcat 中也是非常重要的工具,这里我们简单介绍下 Tomcat 中的线程池,在 container 的启动过程中<br>org.apache.catalina.core.ContainerBase#initInternal</p> <pre Tomcat 系列篇七-介绍下 Filter 注册逻辑 https://nicksxs.me/2023/10/29/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%83-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Filter-%E6%B3%A8%E5%86%8C%E9%80%BB%E8%BE%91/ 2023-10-29T11:27:03.000Z 2023-10-29T11:27:03.414Z <p>在<br>org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#createWebServer 的时候会调用</p> <pre class="line-numbers Tomcat 系列篇六-介绍下 Lifecycle https://nicksxs.me/2023/10/21/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%85%AD-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Lifecycle/ 2023-10-21T12:30:32.000Z 2023-11-05T11:09:18.860Z <p>Tomcat 中的很多组件都是继承了LifecycleBase这个抽象类的,包括之前讲过的 connector,server,service,context,host 这些组件都是,我们先来看下接口<br>主体是分为两部分,第一部分是定义状态时间,如 聊聊对 FunctionalInterface 注解的一些理解 https://nicksxs.me/2023/10/15/%E8%81%8A%E8%81%8A%E5%AF%B9-FunctionalInterface-%E6%B3%A8%E8%A7%A3%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3/ 2023-10-15T12:13:42.000Z 2023-10-15T12:14:55.934Z <p>在看 Tomcat 代码过程中碰到了一个小问题,可以用代码来举例讲一下<br>先定义一个简单的接口</p> <pre class="line-numbers language-java" data-language="java"><code Tomcat 系列篇五-介绍下 Service 启动过程 https://nicksxs.me/2023/10/07/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%9B%9B-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Service-%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B/ 2023-10-07T08:03:56.000Z 2023-10-07T08:04:46.198Z <p>这里开始介绍下 Service 的启动过程,Tomcat 的启动过程中</p> <pre class="line-numbers language-java" data-language="java"><code class="language-java"><span Tomcat 系列篇四-介绍下 Valve 架构 https://nicksxs.me/2023/10/01/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E5%9B%9B-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Valve-%E6%9E%B6%E6%9E%84/ 2023-10-01T11:54:06.000Z 2023-10-01T11:54:37.988Z <p>valve 是 Tomcat 架构中比较重要的一个组成部分,<br>之前说到 </p> <pre class="line-numbers language-java" data-language="java"><code Tomcat 系列篇三-介绍下 Coyote https://nicksxs.me/2023/09/24/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%89-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Coyote/ 2023-09-24T13:36:43.000Z 2023-09-24T13:36:43.402Z <p>前面介绍了 connector,这里边还有个很重要的概念是 Coyote,真正将前面的 connector 跟后面的 container Tomcat 系列篇二-介绍下整体架构 https://nicksxs.me/2023/09/16/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%BA%8C-%E4%BB%8B%E7%BB%8D%E4%B8%8B-Engine/ 2023-09-16T07:20:57.000Z 2023-09-16T07:24:08.607Z <p>前面那一篇感觉上来的有点突兀,还是应该按照架构去慢慢解析,所以这里回归下我们整体的 Tomcat 架构,这里我们通过一个 Tomcat 的配置文件来看看</p> <pre class="line-numbers language-markup" Tomcat 系列篇一-介绍下 connector https://nicksxs.me/2023/09/10/Tomcat-%E7%B3%BB%E5%88%97%E7%AF%87%E4%B8%80-%E4%BB%8B%E7%BB%8D%E4%B8%8B-connector/ 2023-09-10T13:30:22.000Z 2023-09-11T00:23:37.251Z <p>tomcat的主体架构里,connector 作为核心的连接器<br><img springboot 处理请求的小分支-跳转 & cookie https://nicksxs.me/2023/09/03/springboot-%E5%A4%84%E7%90%86%E8%AF%B7%E6%B1%82%E7%9A%84%E5%B0%8F%E5%88%86%E6%94%AF-%E8%B7%B3%E8%BD%AC-cookie/ 2023-09-03T13:29:12.000Z 2023-09-03T13:29:12.447Z <p>首先是跳转,应该说设置状态,其中跳转是其中一个状态,</p> <pre class="line-numbers language-java" data-language="java"><code class="language-java"><span springboot 请求响应处理流程 https://nicksxs.me/2023/08/27/springboot-%E8%AF%B7%E6%B1%82%E5%93%8D%E5%BA%94%E5%A4%84%E7%90%86%E6%B5%81%E7%A8%8B/ 2023-08-27T14:47:19.000Z 2023-09-05T09:19:33.385Z <p>Tomcat 会把请求委托到<br><code>org.springframework.web.servlet.DispatcherServlet#doService</code> </p> <pre class="line-numbers language-java" springboot web server 启动逻辑 https://nicksxs.me/2023/08/20/springboot-web-server-%E5%90%AF%E5%8A%A8%E9%80%BB%E8%BE%91/ 2023-08-20T09:38:56.000Z 2023-09-05T09:27:00.552Z <p>springboot 的一个方便之处就是集成了 web server 进去,接着上一篇继续来看下这个 web server 的启动过程<br>这边是基于 springboot 的 2.2.9.RELEASE 版本,整个 springboot springboot mappings 注册逻辑 https://nicksxs.me/2023/08/13/springboot-mappings-%E6%B3%A8%E5%86%8C%E9%80%BB%E8%BE%91/ 2023-08-13T12:38:31.000Z 2023-08-13T12:39:57.156Z <p>前面讲了怎么获取 mapping url,继续说下这些mappings 是怎么注册进去的,<br>来看下这个 <code>RequestMappingHandlerMapping</code> 的继承关系<br><img springboot 获取 web 应用中所有的接口 url https://nicksxs.me/2023/08/06/springboot-%E8%8E%B7%E5%8F%96-web-%E5%BA%94%E7%94%A8%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E6%8E%A5%E5%8F%A3-url/ 2023-08-06T13:16:36.000Z 2023-08-06T13:17:46.005Z <p>最近有个小需求,要把我们一个 springboot 应用的 request mapping 给导出来,这么说已经是转化过了的,应该是要整理这个应用所有的接口路径,比如我有一个 api.baidu1.com