SpringBoot介绍以及第一个SpringBoot程序


T04BF
👋专栏: 算法|JAVA|MySQL|C语言
🫵 今天你敲代码了吗

文章目录

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 复制代码
<?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标签里面的内容

xml 复制代码
<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请求响应流程分析

2.3.2访问出错

404

表示用户访问的资源不存在,可能是URL的路径有误

使用fiddler就能清楚地看到:

505

表示服务器出现内部错误,一般是服务器的代码执行过程出现错误(程序崩溃)

这种我们经常会第一时间去看错误日志

通过idea看错误日志:

感谢您的访问!!期待您的关注!!!


T04BF
🫵 今天记得敲代码

相关推荐
捕风捉你19 分钟前
Spring 源码解读:使用FactoryBean创建复杂对象的实现
java·spring
A懿轩A22 分钟前
安装2024最新版Android Studio 最详细教程(带图展示)
android·java·ide·android studio
生产队队长42 分钟前
SpringBoot2:请求处理原理分析-利用内容协商功能实现接口的两种数据格式(JSON、XML)
spring boot
m0_571957581 小时前
Java | Leetcode Java题解之第403题青蛙过河
java·leetcode·题解
潘多编程1 小时前
Spring Boot 注解探秘:JSON 处理的魔法世界
spring boot·后端·json
箬敏伊儿1 小时前
Spring Boot 项目的 pom.xml 中,groupId、artifactId 等信息要如何定义?——定义规则及案例
xml·java·spring boot·后端·spring
我明天再来学Web渗透1 小时前
【hot100-java】【对称二叉树】
java·开发语言·数据结构·算法·leetcode·链表·深度优先
LearnTech_1231 小时前
【学习笔记】手写Tomcat 二
java·笔记·学习·tomcat·手写tomcat
奋斗的袍子0072 小时前
SpringBoot:token是用来鉴权的,那session的作用是什么?
spring boot·后端·token·session
L-9602 小时前
maven中的仓库的配置与优先级
java·maven