文章目录
- 2.第一个SpringBoot程序
- 2.1Spring Boot介绍
- 2.2使用idea创建Spring Boot程序
- 2.2.1 社区版idea
- 2.2.2专业版idea
- 2.2.3创建SpringBoot项目
- 2.2.4项目代码和目录介绍
- 目录介绍
- pom文件
- 2.3Web服务器
- 2.3.1请求响应流程分析
- 2.3.2访问出错
- 404
- 505
2.第一个SpringBoot程序
2.1Spring Boot介绍
我们首先要了解什么是Spring?
Spring可以让java程序更加快捷,简单和安全.Spring对于速度,简单性和生产力的关注使其成为世界上最流行的java框架
Spring官方提供了许多的开源项目,覆盖范围从web开发到大数据
实际上,这些项目都是基于Spring Framework来进行开发的,但是Spring Framework配置多,入门难,为了简化开发者的使用,从而推出了Spring Boot
当我们提到Spring的时候,可能对应着两个含义:
(1)Spring全家桶
(2)Spring Framework
也就是说:
Spring Boot的诞生是为了简化Spring 程序开发的
Spring Boot指的就是Spring脚手架,就是类似于我们盖房子的脚手架
在盖房子的时候,使用脚手架可以更加快速的盖房子
而Spring Boot就是Spring的脚手架
2.2使用idea创建Spring Boot程序
2.2.1 社区版idea
需要先安装Spring Boot Help插件
但是现在下载需要花费,即收费版
因此社区版idea使用这个插件,如果想要免费使用,需要按照对应的idea版本,并且自己将插件下载下来(插件文件在本文资源)
注意对应的idea版本必须为2021.1 -2022.1.4
下载完后
找到插件安装即可
2.2.2专业版idea
不需要进行插件安装,idea已经集成了
2.2.3创建SpringBoot项目
2.2.4项目代码和目录介绍
目录介绍
这四个都是没用的,可以直接去掉
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.JWCB</groupId>
<artifactId>J20240715</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>J20240715</name>
<description>J20240715</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我们主要看dependencies标签里面的内容
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
引入了两个依赖:
spring-boot-starter-web:包含web应用开发所需要的常见的依赖
spring-boot-starter-test:包含了单元测试所需要的常见依赖
但是可以发现,这似乎与我们前面讲到的Maven坐标不太一样,少了version
可是jar包是有下载下来的,并且指定了版本
实际上这就牵扯到父工程
每一个Spring Boot工程,都有一个父工程,所依赖的版本号都是在父工程里面统一管理的
往下拉的时候会发现有一个插件
实际上这是与打包有关的插件
如果我们不使用这个插件:
此时的jar包就不包含我们额外引入的依赖,只是一些自定义的类而已
但是如果我们加上这个插件
对于SNAPSHOT
实际上指的是非稳定版本,可能发生变化
而Release版本就是稳定的版本
2.3Web服务器
我们先实现代码如下:
此时使用浏览器访http://127.0.0.1:8080/sayHello
就能得到这样的结果
这个过程就涉及浏览器和服务器之间的数据交互,使用的是http协议
而Web服务器就是对HTTP协议进行封装,程序员不需要直接对协议进行操作(比如自己写代码去解析HTTP协议规则)
SpringBoot内置了Tomcat服务器(一种web服务器),因此我们无需配置就可以直接运行
因为Tomcat默认的端口号是8080,因此程序访问的端口号也是8080
2.3.1请求响应流程分析
- 对于浏览器:
当我们输入网址http://127.0.0.1:8080/sayHello之后,就会通过Ip地址127.0.0.1定位到一台计算机(此时是本机)
接着通过端口号找到计算机上对应的进程,也就是本地计算机上端口号为8080的程序
/sayHello是请求资源的位置 - 对于服务器
接收到浏览器发送的信息(如/sayHello),接着在服务器上找到相应资源,将资源发送给浏览器
2.3.2访问出错
404
表示用户访问的资源不存在,可能是URL的路径有误
使用fiddler就能清楚地看到:
505
表示服务器出现内部错误,一般是服务器的代码执行过程出现错误(程序崩溃)
这种我们经常会第一时间去看错误日志
通过idea看错误日志: