SpringBoot介绍以及第一个SpringBoot程序

在这里插入图片描述

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

🫵 今天记得敲代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 周赛(406)全AC留念

纪念第一次 leetcode 周赛&#xff08;406&#xff09;全AC 1.(100352. 交换后字典序最小的字符串) 题目描述&#xff1a; 给你一个仅由数字组成的字符串 s&#xff0c;在最多交换一次 相邻 且具有相同 奇偶性 的数字后&#xff0c;返回可以得到的 字典序最小的字符串 。 如…

量化发展历史简述,QMT/PTrade+恒生UFT、LDP极速柜台适用哪些情形?

量化发展简述 1.2004年萌发阶段&#xff1a;策略局限在量化择时&#xff0c;量化选股等&#xff1b; 光大保德信量化核 心基金 上投摩根阿尔法基 金 金融危机&#xff0c;海归引入。 2.2010量化元年&#xff1a;中低频交易为主&#xff0c;主要依靠套利、对冲、多因子策略等…

Nginx入门到精通一(基本概念介绍)

下面内容整理自bilibili-尚硅谷-Nginx青铜到王者视频教程 Nginx相关文章 Nginx入门到精通二&#xff08;安装配置&#xff09;-CSDN博客 Nginx入门到精通三&#xff08;Nginx实例1&#xff1a;反向代理&#xff09;-CSDN博客 Nginx入门到精通四&#xff08;反向代理2&…

linux服务器登录mysql无异常,本地登录报1045 -Access denied for user

1、本地登录linux服务器报“1045 -Access denied for user &#xff08;用户访问被拒绝&#xff09;” 造成上面链接问题的原因是&#xff0c;用户权限不足&#xff0c;需要在linux服务器上执行如下2条命令即可 CREATE USER root127.0.0.1 IDENTIFIED BY root123; GRANT ALL P…

蔚来Java实习一面总结

此文用于个人面经总结&#xff0c;答案可能存在出入&#xff0c;望理性食用~~ 1. 分析时间复杂度的工具 2. 数组和链表的区别 数组&#xff1a;线性表&#xff0c;存储空间连续&#xff0c;可以通过下标直接访问元素&#xff0c;查找时间复杂度为O(1)&#xff0c;插入的时间…

前端Vue组件化实践:打造自定义等宽tabs标签组件

在前端开发的世界里&#xff0c;随着业务复杂度的提升和需求的多样化&#xff0c;传统的整体式开发方式已经难以满足快速迭代和高效维护的需求。组件化开发作为一种重要的解决方案&#xff0c;正逐渐受到广大开发者的青睐。本文将结合Vue框架&#xff0c;探讨如何通过组件化开发…

Linux 网络配置与连接

一、网络配置 1.1 ifconfig 网卡配置查询 ifconfig #查看所有启动的网络接口信息 ifconfig 指定的网卡 #查看指定网络接口信息 1.2 修改网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33网络配置文…

数据驱动未来,Xinstall全渠道统计方案引领行业变革

在这个信息爆炸的时代&#xff0c;App市场的竞争日益激烈。对于每一个开发者或营销人员来说&#xff0c;掌握准确、全面的数据分析能力&#xff0c;是提升产品竞争力、优化营销策略的关键。然而&#xff0c;面对投放渠道的分散、数据打通的困难以及作弊流量的困扰&#xff0c;许…

CentOS7.X系统部署Zabbix6.0版本(可跟做)

文章目录 一、部署环境说明二、基本环境部署步骤1、环境初始化操作2、部署并配置Nginx3、部署并配置PHP4、测试NginxPHP环境5、部署并配置MariaDB 三、Zabbix-Server部署步骤1、编译安装Zabbix-Server2、导入Zabbix初始化库3、配置Zabbix前端UI4、启动Zabbix-Server5、WEB页面配…

大厂必争之地!AI搜索产品万字长文分析

多年以前&#xff0c;百度、谷歌等就在开始做智能搜索&#xff0c;但彼时的智能搜索只是对搜索结果的简单整理归纳&#xff0c;效果并不如人意。当前AI爆火&#xff0c;在AI的加持下&#xff0c;搜索会不会更强大一些呢&#xff1f;其实并不是&#xff0c;至少当前AI搜索的使用…

【Linux杂货铺】期末总结篇2:文件操作命令 | 目录操作命令

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 第四章4.1 ⛳️Linux与windows的文件系统差别4.2 ⛳️目录相关的常用术语4.3 ⛳️Linux文件类型…

环境配置|PyCharm——Pycharm本地项目打包上传到Github仓库的操作步骤

一、Pycharm端的设置操作 通过Ctrl+Alt+S快捷组合键的方式,打开设置,导航到版本控制一栏中的Git,在Git可执行文件路径中,输入Git.exe。 按照下图顺序,依次点击,完成测试。输出如图标④的结果,即可完成测试。 输出下图结果,配置Git成功,如本地未安装Git,需自行安装。

机器学习 | 深入理解激活函数

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后&#xff0c;将此输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围…

Java的数组

概念&#xff1a;用于存储同一数据类型的多个元素[容器] 声明格式&#xff1a;数据类型[] 变量名&#xff1b; 初始化&#xff1a; 1. 静态初始化 数据类型[] 数组名 new 数据类型[]{元素一,元素二,元素三....}简化格式: 数据类型[] 数组名 {元素一,元素二,元素三....} 简…

phenocycler发现免疫治疗反应关键的肿瘤微环境区域

T 细胞介导的抗原特异性反应对于有效的免疫监视至关重要。然而T细胞如何进入肿瘤微环境并操纵局部组织微环境来实现效应器功能&#xff0c;以及这些局部的细胞结构如何对T细胞疗法或者其他免疫治疗做出反应仍然不清楚。近期来自斯坦福大学的研究者利用小鼠模型和临床患者样本&a…

【LeetCode力扣】006. Z 字形变换(Python)

最快解法 参考了运行时间最短的代码&#xff0c;其使用的思路就是按列排序后连接。 class Solution:def convert(self, s: str, numRows: int) -> str:if numRows < 2 : # numRows1时候&#xff0c;对应输出为原字符串return sn len(s)lst [ for _ in range(numRows…

数据库:redis练习题

1、安装redis&#xff0c;启动客户端、验证。 redis-server redis-cli 2、string类型数据的命令操作&#xff1a; &#xff08;1&#xff09; 设置键值&#xff1a; set mykey "haha" &#xff08;2&#xff09; 读取键值&#xff1a; get mykey &#xff08;3&…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细&#xff0c;因为没有介绍卷积操作的具体计算&#xff1b;但是它介绍了 CNN 各层次的功能…

ubantu22.04安装OceanBase 数据库

1、管理员启动cmd,运行 sudo bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/service/installer.sh)" 2、提示如下代表安装完成 3、修改数据库配置文件的密码 sudo vim /etc/oceanbase.cnf 然后保存退…

【B树、B-树、B+、B*树】

目录 一、B-树&#xff08;即B树&#xff09;的定义及操作1.1、定义1.2、操作1.2.1、查找1.2.2、插入1.2.3、删除 二、B树的定义及操作2.1、定义2.2、操作2.2.1、查找2.2.2、插入2.2.3、删除 三、B*树 一、B-树&#xff08;即B树&#xff09;的定义及操作 1.1、定义 B-tree即…