开头说两句
Java 基础 Demo 站: https://www.javastudy.cloud
Java 中高级开发博客: https://www.lixiang.red
Java 学习公众号: java 技术大本营
学习背景
上一波,我们学习了 tomcat 中主要接口的方法及关系:
https://www.lixiang.red/articles/2019/08/12/1565622240937.html
实际上源码只通过看,也差不多只能看到这个地步了,后面就一直看的话,就很容易乱,有句话说:实践出真知
今天我们就一起通过 tomcat 源码,来启动我们日常的 web 应用,在中间,可以 debug , 可以更好的看到整个过程
准备 web 应用
可以在 https://start.spring.io/ 去快速生成一个 web 应用
然后生成项目,可得到如下目录结构:
我们用 ide 打开,去添加一个 controller ,并打成 war 包备用
然后把 war 包丢到 tomcat 的 webapp 目录下面
tomcat 的配置
导入 jar 包到 idea 中
ant 相关的配置可参考这篇文章
https://www.lixiang.red/articles/2019/08/04/1564907616303.html
执行 deploy 命令之后,我们可以在 tomcat-build-libs 目录中看到拉下的 jar 包
然后把这些包导入到 idea 中
先打开工程设置面板
点击添加 jar 包的按钮
找到对应 tomcat-build-libs 目录,全选下面的所有文件,包括我们自己下载的 ant.jar ,最后点击 OK
修改 tomcat 本身一些配置
- 删掉 tomcat/webapps/examples 目录, 这里面都是一些示例,在源码编译中会报错,干扰我们的正常启动,可以先删掉
- 修改 tomcat 的端口号(可选)在 tomcat/conf/server.xml 中进行修改,就像我们平时部署应用一样
启动 tomcat 并跟踪
以前我们有聊过,在用 shell 脚本启动 tomcat 时,是启动的 Bootstrap.java 这个类,并且跟上了参数 start
所以,我们需要 idea 的启动参数里面,也要加上 start
打断点: 可以在我们前面讲的启动入口入,也就是 main 函数处打断点做最开始的追踪
放过断点继续运行一会,可以看到 spring 启动的界面
最后我们在浏览器中访问下我们写的 controller,能看到相应的返回
最后说两句
经过前面的学习,再看源码就信息量很大了,不利于分析,我们就要把源码运行起来,然后通过 debug , 可一步一步的去调试和学习,大家在学习过程中有什么问题可以随时和小刀说: best39697802
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于