0


【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错

1. 运行项目

  1. importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[] args){SpringApplication.run(Application.class, args);}}
  • @SpringBootApplicationSpring Boot 启动类注解 点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:image.png

2. 输出 Hello world

JavaEE 更多是围绕着如何使用 Java 来进行 web 开发。如果要和浏览器进行交互,就需要使用 Spring Boot 来实现

在创建的项目包路径下创建 UserController 文件,实现代码如下:

  1. importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassUserController{@RequestMapping("/hello")publicStringhello(){return"Hello, Spring";}}
  • 重新启动项目,访问 127.0.0.1:8080/hello,最终效果如下:image.png|498

3. Web 服务器

浏览器和服务器两端进行数据交互,使用的就是

  1. HTTP

协议image.png
前面文章已经介绍了

  1. HTTP

协议,知道了

  1. HTTP

协议就是

  1. HTTP

客户端和

  1. HTTP

服务器之间的交互数据的格式

  1. Web

服务器就是对

  1. HTTP

协议进行封装,程序员不需要直接对协议进行操作(自己写代码去解析

  1. HTTP

协议规则),让

  1. Web

开发更加便捷,所以

  1. Web

服务器也被称为

  1. WWW

服务器,

  1. HTTP

服务器,主要功能是提供网上的信息浏览服务

  • 常见的 Web 服务器有:ApacheNginxIIS,**Tomcat**,Jboss
  1. Spring Boot

内置了

  1. Tomcat

服务器,无需配置就可直接运行image.png
Tomcat 默认端口号是 8080,所以我们程序访问时的端口号也是 8080

4. 请求响应流程分析

浏览器输入 URL 之后,发起请求,就和服务器之间建立了连接
image.png

浏览器,输入网址:

  1. 127.0.0.1:8080/user/sayhi
  • 通过 IP 地址 127.0.0.1 定位到网络上的一台计算机(127.0.0.1 就是本机)
  • 通过端口号 8080 找到计算机上对应的进程,也就是在本地计算机中找到正在运行的 8080 端口的程序
  • /user/sayhi 是请求资源位置 - 资源:对计算机而言资源就是数据- web 资源:通过网络可以访问到的资源(通常指放在服务器上的数据)
  1. 127.0.0.1:8080/user/sayhi

,就是向本地计算机中的

  1. 8080

端口程序,获取资源位置是

  1. /user/sayhi

的数据,然后发给服务器


服务器:

  • 接收到浏览器发送的信息(如:/user/sayhi)
  • 在服务器上找到/user/sayhi 的资源
  • 把资源发给浏览器

5. 访问出错怎么办

404

404 表示用户访问的资源不存在,大概率是 URL 路径写的不正确

错误实例 1:URL 单词拼错

image.png|595

错误实例 2:注解写错

注释写错或者没写都会报错

  1. @ControllerpublicclassUserController{@RequestMapping("/sayHi")publicStringsayHi(){return"hello, spring";}}
  • 此时访问也会报错image.png

通过

  1. Fiddler

观察

  1. http

请求 image.png

500

服务器出现内部错误,一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃),会产生这个状态码

错误实例:

  1. @RestControllerpublicclassUserController{@RequestMapping("/sayHi"){int res =10/0;return"hello, Spring";}}
  • 重启 Tomcat 服务器,重新访问页面,可以看到:image.png

此时,程序后端控制台已经打印了具体的异常调用栈image.png

  • 异常信息里已经提示了出现异常的代码是 UserController.java 的第 11 行
  • 错误原因是算术异常:除数为 0
  • 按照异常提示,去解决对应的问题即可

无法访问此网站

一般是

  1. Tomcat

启动失败了 image.png|486

打开 Fiddler 的话,界面如下:image.png

**这种情况一般是服务器未启动,也就是

  1. Tomcat

未启动,或者 IP/端口号写错了**

小结

熟悉

  1. HTTP

协议能让我们调试问题事半功倍

  • 4xx 的状态码标识路径不存在,往往需要向上检查 URL 是否正确,和代码中设定的 Context Path 以及 Servlet Path 是否一致
  • 5xx 的状态码表示服务器出现错误,往往需要观察页面提示的内容和 Tomcat 自身的日志,观察是否存在报错
  • 出现连接失败往往意味着服务没有正确启动,也需要观察服务器的自身日志是否有错误提示

程序猿调试 BUG 如同医生诊病
一个有经验的程序猿和一个新手程序猿相比,最大的优势往往不是代码写的多好,而是调试效率有多高。如同一个问题可能新手花了几天都无法解决,但是有经验的程序猿可能几分钟就搞定了

总结

  1. Spring Boot

是为了快速开发

  1. Spring

而诞生的,

  1. Spring Boot

具备:

  • Spring Boot 提供了启动添加依赖的功能,可以快速集成框架
  • 内置 web 服务器,无需配置 Tomcatweb 服务器,直接运行和部署程序
  • 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发
  • 支持更多的监控的指标,可以更好的了解项目的运行情况等特点Spring Boot 可使用 IDEA 或网页创建,它的设计思想是约定大于配置,类上标注@SpringBootApplication 就可以启动 Spring Boot 项目了
标签: spring spring boot java

本文转载自: https://blog.csdn.net/Yeeear/article/details/142695889
版权归原作者 椰椰椰耶 所有, 如有侵权,请联系我们删除。

“【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错”的评论:

还没有评论