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
🫵 今天记得敲代码

相关推荐
catchadmin2 小时前
PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明
人工智能·后端·chatgpt·php
GUIQU.2 小时前
【QT】嵌入式开发:从零开始,让硬件“活”起来的魔法之旅
java·数据库·c++·qt
whltaoin5 小时前
SpringCloud 项目阶段九:Kafka 接入实战指南 —— 从基础概念、安装配置到 Spring Boot 实战及高可用设计
spring boot·spring cloud·kafka
callJJ6 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(2)
java·开发语言·后端·spring·ioc·di
wangjialelele6 小时前
Linux中的线程
java·linux·jvm·c++
谷咕咕6 小时前
windows下python3,LLaMA-Factory部署以及微调大模型,ollama运行对话,开放api,java,springboot项目调用
java·windows·语言模型·llama
没有bug.的程序员6 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
在下村刘湘7 小时前
maven pom文件中<dependencyManagement><dependencies><dependency> 三者的区别
java·maven
不务专业的程序员--阿飞8 小时前
JVM无法分配内存
java·jvm·spring boot
你的人类朋友8 小时前
JWT的组成
后端