当前位置: 首页 > article >正文

SpringBoot 入门

1. Spring Boot 项目创建

1.1 使用 Idea 创建

社区版需要先安装 Spring Boot Helper 插件才能创建 Spring Boot 项目

专业版已经集成了,所以不用安装插件

本文使用的是专业版

创建 Spring Boot 项目

File -> New -> Project

tip:

Spring Boot 版本,选择任意 3.x 的,这个版本会随着 Spring Boot 的升级而发生变化,不固定

3.x 版本使用的是 JDK 17;3.x 以下使用的是 JDK 8;并不是 Spring Boot 完全不支持 JDK 8 了

1.2 目录信息:

1.3 pom 代码:

1.4 运行项目

点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:

1.5 输出文本

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

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi() {
        return "Hello Spring";
    }
}

重新启动项目,访问 http://127.0.0.1:8080/sayHi 最终效果如下:

1.6 Web 服务器

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

Web 服务器就是对 HTTP 协议进行封装,程序员不需要直接对协议进行操作(自己写代码去解析 HTTP 协议规则),让 Web 开发更加便携,所以 Web 服务器也称为 WWW 服务器,HTTP 服务器,主要功能是提供网上信息浏览服务

常见的 Web 服务器有:Apache,Nginx,IIS,Tomcat,Jboss 等

SpringBoot 内置了 Tomcat 服务器,无需配置即可直接运行

Tomcat 默认端口号是 8080,所以我们程序访问时的端口号也是 8080

1. 7 请求响应流程分析

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

浏览器:

  • 输入网址: http://127.0.0.1:8080/user/sayHi
  • 通过 IP 地址 127.0.0.1 定位到网络上的一台计算机(127.0.0.1 就是本机)
  • 通过端口号 8080 找到计算机上对应的进程,也就是在本地计算机中找到正在运行的 8080 端口的程序
  • /user/sayHi 是请求资源位置

资源:对计算机而言就是数据;Web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)

服务器:

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

1.8 常见状态码

1XX

2XX:成功

3XX:重定向,转移

4XX:客户端错误,通常是指请求有问题,比如协议、方法、参数等等

5XX:服务端错误,通常是指代码错了,有 bug

1.8.1 404

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

错误示例1:URL 单词拼错

错误示例2:注解写错

1.8.2 500

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

错误示例:

当重新访问页面时:

再看程序后端控制台已经打印了具体的异常调用栈:

异常信息里已经提示了出现异常的代码是 HelloController.java 的第 10 行

错误原因是算数异常:除数为 0

按照异常提示去解决对应的问题即可

1.8.3 无法访问此网站

这种情况一般是服务未成功启动,也就是 Tomcat 未启动,或者 IP / 端口写错


http://www.kler.cn/news/358592.html

相关文章:

  • 动态规划详解:最长公共子序列问题的高效解法
  • element-plus 官方表格排序问题
  • 【设计模式系列】简单工厂模式
  • 机器学习与神经网络:科技的星辰大海
  • Leetcode 3325. Count Substrings With K-Frequency Characters I
  • 【GIT】.gitignore文件的使用
  • Python版本无重复字符的最长子串
  • CSMA/CD协议 监听算法
  • ROS理论与实践学习笔记——5 ROS机器人系统仿真之URDF、Gazebo与Rviz综合应用
  • Caffeine Cache解析(一):接口设计与TinyLFU
  • python如何使用SciPy matplotlib完成数据分析?
  • 【Flutter】基础入门:项目结构
  • spring-cloud-alibaba-nacos-config2023.0.1.*启动打印配置文件内容
  • 机器学习中的朴素贝叶斯
  • 【ChatGPT】如何让 ChatGPT 提供简短、精准的答案
  • 新版vs code + Vue高亮、语法自动补全插件
  • OkEdge边缘计算网关助力数字化工厂管理系统高效部署与维护
  • IntelliJ IDEA 常用快捷键详解与自定义修改方法
  • SoapShell 更新 | 增强免杀版适配冰蝎4.0客户端的WebShell
  • Tailwind css系列教程(二)