SpringBoot介绍以及第一个SpringBoot程序

news2024/11/15 17:38:31

在这里插入图片描述

T04BF

👋专栏: 算法|JAVA|MySQL|C语言

🫵 今天你敲代码了吗

文章目录

  • 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看错误日志:
在这里插入图片描述

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

在这里插入图片描述

T04BF

🫵 今天记得敲代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 上 TTY 的起源

注&#xff1a;机翻&#xff0c;未校对。 What is a TTY on Linux? (and How to Use the tty Command) What does the tty command do? It prints the name of the terminal you’re using. TTY stands for “teletypewriter.” What’s the story behind the name of the co…

【边缘计算网关教程】6.松下 Mewtocol TCP 协议

前景回顾&#xff1a;【边缘计算网关教程】5.三菱FX3U编程口通讯-CSDN博客 松下 Mewtocol TCP 协议 适配PLC&#xff1a;松下FP0H 松下XHC60ET 1. 硬件连接 Mewtocol TCP协议采用网口通信的方式&#xff0c;因此&#xff0c;只需要保证网关的LAN口和松下PLC的IP在一个网段即…

STM32怎么把VDD与VSS引脚配置为GPIO?

在 STM32 微控制器中&#xff0c;VDD 和 VSS 引脚是供电引脚&#xff0c;分别用于电源和接地。我收集归类了一份嵌入式学习包&#xff0c;对于新手而言简直不要太棒&#xff0c;里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&#xff0c;敲个…

使用base64通用文件上传

编写一个上传文件的组件 tuku,点击图片上传后使用FileReader异步读取文件的内容&#xff0c;读取完成后获得文件名和base64码&#xff0c;调用后端uploadApi,传入姓名和base64文件信息&#xff0c;后端存入nginx中&#xff0c;用于访问 tuku.ts组件代码&#xff1a; <templa…

变量筛选—特征包含信息量

在变量筛选中,通过衡量特征所包含信息量大小,决定是否删除特征,常用的指标有单一值占比、缺失值占比和方差值大小。单一值或缺失值占比越高,表示特征包含信息量越少,不同公司设置不同阈值,一般单一值、缺失值占比高于95%,建议删除。方差值越小,代表特征包含信息量越小。…

JMeter进行HTTP接口测试的技术要点

参数化 用户定义的变量 用的时候 ${名字} 用户参数 在参数列表中传递 并且也是${} csv数据文件设置 false 不忽略首行 要首行 从第一行读取 true 忽略首行 从第二行开始 请求时的参数设置&#xff1a; 这里的名称是看其接口需要的请求参数的名称 这里的变量名称就是为csv里面…

C语言程序设计实例2

C语言程序设计2 问题2_1代码2_1结果2_1 问题2_2代码2_2结果2_2 问题2_3代码2_3结果2_3 问题2_1 函数 f u n fun fun的功能是&#xff1a;计算如下公式前 n n n项的和&#xff0c;并作为函数值返回。 S 1 3 2 2 3 5 4 2 5 7 6 2 ⋅ ⋅ ⋅ ( 2 n − 1 ) ( 2 n 1 ) …

Linux操作系统——数据库

数据库 sun solaris gnu 1、分类&#xff1a; 大型 中型 小型 ORACLE MYSQL/MSSQL SQLITE DBII powdb 关系型数据库 2、名词&#xff1a; DB 数据库 select update database DBMS 数据…

Sql语句之增删改查(CRUD)

Sql语句的书写也被称之为CRUD&#xff0c;即C&#xff08;Create增加&#xff09;R&#xff08;Retrieve添加&#xff09;U&#xff08;Update更新&#xff09;D&#xff08;Delete删除&#xff09;四个操作的首字母。 我们先来看增、删、改这三个相对较为简单&#xff0c;语法…

string+迭代器

int main(){ string s0; string s1("hello word"); cout<<s1<<endl; //遍历string,下标[] for(size_t i0;i<s1.size();i) { cout<<s1[i]<<""; } cout<<endl; } 注意&#xff1a;这里size_t不算/0 迭代器 int main() {st…

Open3D 生成多个球形点云

一、概述 使用 Open3D 创建一个三角网格的球体&#xff0c;并从中均匀采样点生成点云&#xff0c;同时可以指定球体的半径和中心位置。生成 5 个不同大小和位置的圆球形点云&#xff0c;并将它们合并成一个点云以进行显示。 二、代码实现 import open3d as o3d import numpy …

Django任务管理

1、用django-admin命令创建一个Django项目 django-admin startproject task_manager 2、进入到项目下用命令创建一个应用 cd task_manager python manage.py startapp tasks 3、进入models.py定义数学模型 第2步得到的只是应用的必要空文件&#xff0c;要开始增加各文件实际…

博客都在使用的主题切换使用vue2实现思路

效果展示 步骤 1-变量定义css主题色 2-html初始化主题样式 3-vuex存储主题变量&#xff0c;点击触发修改根元素html的样式 4-method触发方法 mutation使用commit action使用dispatch 5-App组件引入该css文件&#xff0c;使用即可 6-将其加入本地存储&#xff0c;刷新后保持主…

【Git分支管理】分支合并冲突及其解决

目录 0.合并冲突 1.创建和切换dev1 ​2.dev1 bbb on dev branch ​3.master ccc on dev branch 4.dev1和master合并冲突 5.合并冲突解决 ​6.git log查看合并流程图 先提交再合并 0.合并冲突 在使用git进行合并操作的时候&#xff0c;在合并两个分支的时候就有可能出…

鹧鸪云户用业务管理系统:全流程管理+源码部署

在当今数字化转型的浪潮中&#xff0c;企业对于高效、灵活且定制化的业务管理系统需求日益增长。为满足这一市场需求&#xff0c;鹧鸪云户用业务管理系统应运而生&#xff0c;它以“全流程管理源码部署”为核心优势&#xff0c;为企业提供了一套集成化、可扩展且易于维护的解决…

最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具

一。世界最受欢迎的采样器的新篇章 Native Instruments Kontakt是采样器领域的标准&#xff0c;您将获得高质量的滤波器&#xff0c;在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制&#xff0c;并且由于它&#xff0c;您可以获得前所未有的声…

1.6.丢弃法

丢弃法 动机&#xff1a;一个好的模型需要对输入数据的扰动足够健壮&#xff0c;丢弃法就是在层之间加入噪音。也可以在数据中使用噪音&#xff0c;等价与Tikhonov正则 无偏差的加入噪音 ​ 对于数据 x x x&#xff0c;加入噪音后的 x ′ x x′的期望值是不变的&#xff0c;…

一文说透Springboot单元测试

你好&#xff0c;我是柳岸花开。 一、单元测试说明 1 单元测试的优点与基本原则 一个好的单元测试应该具备以下FIRST 原则和AIR原则中的任何一条&#xff1a; 单元测试的FIRST 规则 Fast 快速原则&#xff0c;测试的速度要比较快&#xff0c; Independent 独立原则&#xff0c;…

华为“铁三角模式”在数据类项目中的应用和价值

引言&#xff1a;随着信息技术的飞速发展&#xff0c;企业纷纷踏上数字化转型的道路&#xff0c;希望通过数据分析和智能决策来提升企业竞争力。在这一过程中&#xff0c;数据类项目成为关键&#xff0c;它们旨在构建高效的数据治理和分析平台&#xff0c;为企业决策提供有力支…

数据结构与算法基础-学习-37-平衡二叉树(Avl树)之删除节点

目录 一、知识点回顾 1、二叉搜索树&#xff08;BST&#xff09; 2、平衡二叉树&#xff08;Avl树&#xff09;之查找 二、环境信息 三、实现思路 1、示例图 2、查询 3、删除 &#xff08;1&#xff09;叶子节点&#xff08;无子树节点&#xff09; &#xff08;2&am…