Spring Boot

目录

Spring

[Spring Boot](#Spring Boot)

[Spring Boot 介绍](#Spring Boot 介绍)

[Spring Boot 项目创建](#Spring Boot 项目创建)

[使用 Idea 创建](#使用 Idea 创建)

网页版创建

项目代码和目录介绍

运行项目

[输出 Hello World](#输出 Hello World)

[Web 服务器](#Web 服务器)

请求响应流程分析

访问出错


Spring


  • Spring 让 Java 程序更加快速,简单和安全,Spring 对于速度、简单性和生产力的关注使其成为世界上最流行的 Java 框架
  • Spring 官方提供了很多开源项目,覆盖范围从 Web 开发到大数据,Spring 发展到今天已经形成自己的生态圈,我们在开发时,也倾向于使用 Spring 官方提供的技术来解决对应的问题

Spring 官网:https://spring.io/

Spring 有两个解释:

  1. Spring 家族
  2. Spring core(核心)

查看 Spring 家族


根据上下文判断说的是 Spring 家族还是 Spring core

说的时候很少说 Spring core,Spring core 对应 Spring Framework(框架),是 Spring 最早产品

如果说 Spring 是 Java 目前最广泛使用的框架,此时 Spring 指的就是 Spring 家族


Spring Boot


Spring Boot 介绍

  • Spring Boot 是为了简化 Spring 程序开发的
  • Spring 相当于火车,而 Spring Boot 相当于12306,Spring Boot 是基于 Spring 开发的

Spring Boot 项目创建

使用 Idea 创建

环境准备

idea 要求:

  • idea 社区版本:2021.1-2022.1.4
  • idea 专业版无要求
  • 使用 Idea 社区要先安装 Spring Boot Help 插件才能创建 Spring Boot 项目
  • idea 专业版支持 Spring,非专业版需要安装 Spring Boot Help 插件

安装 Spring Boot Help 插件

  1. 查找插件并下载

点击 Plugin homepage 进入网页下载插件,直接点击 Install 安装的是收费版

插件地址:https://plugins.jetbrains.com/plugin/18622-spring-boot-helper/versions

之前插件地址有免费版下载(插件需要对应 idea 版本)

没有了可以从我的码云上下载:https://gitee.com/git-queen-wang/spring


  1. 安装插件

将 spring 插件压缩包存于任意地方,点击从硬盘上进行安装,选择压缩包所在位置

点击完 OK 需要重启 idea,重启后点击 installed 会显示已经安装的插件


检查插件是否安装成功


创建 Spring Boot 项目

和之前 Maven 仓库坐标对比,Spring Boot 项目也是会打包为 jar 包有自己定义的坐标

复制代码
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
</dependencies>

项目版本由程序员自己决定



引入第三方依赖


Spring Boot 版本选择没有 SNAPSHOT

3.X 的版本用的是 JDK17

2.X 的版本用的是 JDK8


最后创建


右下角点击加载(识别出为 Maven 项目,需要使用 Maven 进行加载构建)


没有点或者不小心跳过了,项目名称右键添加框架会出现 Maven 选项


加载失败或者时间过长

  1. 确认是否配置了国内源(网络非常好不配置国内源也是可以的)

  2. 切换网络(网络切换会造成 jar 只加载了一半,但不会重新加载了,需要清除本地仓库,后期熟练可以找到未加载成功对应的文件夹删掉就可以)

  1. 检查版本是否在仓库有

  2. 重新刷新 Maven

  3. 确认 idea 是否卡死(卡死需要在任务管理器中关闭 idea 重新加载)


加载成功对应的项目创建


如果插件(plugin)加载不出来,则添加版本,建议与 Spring Boot 版本保持一致


插件报错按照路径清除重新刷新


网页版创建


不使用 idea 也可以创建 Spring Boot 项目

Spring 官网提供的网页版来创建 Spring Boot 项目(https://start.spring.io

下载插件


预览


下载


也可以使用阿里云创建(https://start.aliyun.com/


  • 企业大多数时候复制粘贴压缩包创建项目
  • 还可以不基于任何页面,插件进行创建

创建空的 Maven 项目,自己写依赖,启动类


项目代码和目录介绍

idea 相关配置比如 Maven 地址等都是在 .idea 文件里面,下载项目时将 .idea 文件删掉,.idea 删除后会重新生成的


Maven 相关配置信息、帮助文档可以删掉


整个代码在 src 里面


.gitignore 表示在提交码云的时候可以忽略掉的内容(格式、代码),该信息配置可以保留


springboot-demo.iml 也是配置文件


真实的代码只有以下三个文件


java 里面是源代码


resource 资源文件,包括配置信息


test 里面是研发人员写的自测代码


target 是编译文件


观察 pom 文件,pom.xml 文件的具体信息不需要过度关注,主要看 <dependencies> 标签里内容


运行项目

启动类:与类名无关,只要加上该注解就是启动类(右键点击启动)

复制代码
@SpringBootApplication
public class SpringbootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootDemoApplication.class, args);
	}

}

启动成功标志,表示 Tomcat 启动成功,花了 7 秒多


内容都下载下来正常不会报错,可能出现的问题是端口报错


关闭 8080 端口号

查看已使用端口号 8080 的程序:

  • 首先确保 C:\Windows\System32 存在系统环境变量 Path 里面
  • 在 64 位 Windows 上,C:\Windows\System32 存放的是 64 位的系统文件和程序(包括 64 位的 netstat.exe)
  • 然后在 cmd 中输入指令:netstat -ano | findstr :8080
  • 点开任务管理器查找端口号对应的进程 id 点击右键结束任务即可关闭

微信用的并不是本机的端口号 8080



也可以通过命令的形式关掉(taskkill /pid <进程 pid> -f)


修改 8080 端口号


输出 Hello World

复制代码
package com.blue.demo;

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

@RestController
public class helloController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello, Spring boot";
    }
}

重新启动项目:http://127.0.0.1:8080/hello 最终结果如下


Web 服务器


  • 浏览器和服务器两端进行数据交互,使用的就是 HTTP 协议
  • HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间交互数据的格式
  • Web 服务器就是对 HTTP 协议进行了封装

  • 常见的 Web 服务器有:Apache,Nginx,IIS,Tomcat,Jboss 等
  • Spring Boot 内置了 Tomcat 服务器,无需配置即可运行

通过下面途径可以看到项目引入的包,都是 Spring 默认帮我们去用的

(Spring 默认把很多工具封装进去了,我们可以直接拿来使用)


Tomcat 就是一个 Web 服务器,默认端口号是 8080

每个进程都有端口号,HTTP 协议发送指定 IP(发去哪)和端口号(发给谁)


请求响应流程分析


访问出错

常见问题

打开 fiddler

未打开 fiddler

  • 拒绝连接请求大多数原因是服务器未启动
  • 还有一部分原因:如果IP 是外网,可能端口号未开放(但本机不存在这个问题)

HTTP 状态码

200:成功

3XX:重定向

4XX:客户端错误

5XX:内部错误

404:资源不存在,页面不存在(检查 url 路径包括大小写,检查代码注解)

500:代码问题,查看后端日志

看日志方法:从下往上看(一段一段的看,而不是一行一行),先看最后一段的首行

相关推荐
打野二师兄29 分钟前
网关 + MDC 过滤器方案,5分钟集成 日志 traceid
java·开发语言
三原41 分钟前
6年前端学习Java Spring boot 要怎么学?
java·前端·javascript
励志成为糕手43 分钟前
编程语言Java——核心技术篇(六)解剖反射:性能的代价还是灵活性的福音?
java·开发语言·intellij-idea
yourkin66644 分钟前
Bean Post-Processor
java·开发语言·前端
qq_266348731 小时前
idea 源码阅读笔记
java·笔记·intellij-idea
飞翔的佩奇1 小时前
Java项目:基于SSM框架实现的小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告+任务书+远程部署】
java·数据库·mysql·毕业设计·jsp·ssm框架·小区物业管理系统
天天开心(∩_∩)1 小时前
代码随想录算法训练营第三十七天
java·开发语言·算法
YuTaoShao1 小时前
【LeetCode 热题 100】20. 有效的括号
java·linux·数据库·leetcode
丶小鱼丶2 小时前
JVM之【Java虚拟机概述】
java·jvm
小李是个程序2 小时前
分层解耦(Controller,Service,Dao)
java·开发语言·spring boot·后端