第一个SpringBoot项目

目录

💭1、新建New Project

 IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?🌟

2、下载JDK 17🌟

💭2、项目创建成功界面

1、目录 🌟

 2、pom文件🌟

💭3、运行项目

💭4、⽤ Spring Boot 来实现和浏览器及⽤⼾的交互。 

💭5、请求响应流程分析 


这里使用Idea 2023 专业版来创建项目

1、新建New Project👇

 

 IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?

分析Java17和Java 8(JDK1.8)的区别

  1. 版本号:Java 17 是 Java SE 17 的版本,而 JDK 1.8 是 Java SE 8 的版本。
  2. 发布时间:Java 17 发布于 2021 年,而 JDK 1.8 发布于 2014 年.
  3. 新特性:Java 17 相对于 JDK 1.8,新增了很多特性和改进,例如:Switch 表达式、Sealed 类、Pattern
  4. Matching for instanceof 等。
  5. 兼容性:Java 17 和 JDK 1.8 不兼容,由于 Java 的向后兼容性,Java 17 可以运行 JDK 1.8 的代码,但
  6. JDK 1.8 不支持 Java 17 的新特性。
  7. 安全性:Java 17 相对于 JDK 1.8,修复了更多的安全漏洞,提高了程序的安全性。

解决方法:升级JDK版本(采用JDK17或者21版本,创建项目后,springboot的版本要改为3.0以下,在pom.xml中把java改为1.8,如下图。)

2、下载JDK 17

官网下载:Java Archive Downloads - Java SE 17 (oracle.com)

选择Windows X64 Installer下载即可。

 

2、安装JDK17
双击已下载的jdk17,进入安装界面,点击下一步 ==> 选择安装路径,可更改路径,点击更改,我选择安装在E盘,点击确定 == > 点击下一步进行安装。安装完成后直接点击关闭即可。

3、配置Java环境变量

右击此电 ==> 属性 ==> 高级系统设置 ==>环境变量

4、验证是否配置成功
win+R输入cmd回车,输入java -version和javac -version,均返回jdk版本,如下图 

 

2、项目创建成功界面👇

 

1、目录 

Spring Boot 项⽬有两个主要的⽬录:

  •  src/main/java: Java 源代码
  • •src/main/resources: 为静态资源或配置⽂件:
  1.      /static:静态资源⽂件夹, ⽐如前期学的js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的 ⻚⾯
  2.      /templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需 要服务器动态渲染数据的⽂件
  3. •src/test/java: 测试代码源代码 
  • target: 编译后的⽂件路径
  • pom.xml: maven 配置⽂件 

 2、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>2.7.17</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>demo</description>
    <properties>
        <java.version>1.8</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>
pom⽂件中, 引⼊了两个依赖
• spring-boot-starter-web:包含了web应⽤开发所需要的常⻅依赖
• spring-boot-starter-test:包含了单元测试所需要的常⻅依赖

3、运行项目👇

点击启动类的 main ⽅法就可以运⾏ Spring Boot 项⽬了,启动成功如下图所⽰:

4、⽤ Spring Boot 来实现和浏览器及⽤⼾的交互。 👇

在创建的项⽬包路径下创建 UserController ⽂件,实现代码如下:

package com.example.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,SpringBoot";
    }
    @RequestMapping("/helloCN")
    public String helloN() {
        return "hello,SpringBoot中文";
    }
}

 重新启动项⽬,访问 http://127.0.0.1:8080/hello最终效果如下:

 

注意:Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080 

5、请求响应流程分析 👇

浏览器:

  •  输⼊⽹址:http://127.0.0.1:8080/hello
  •         通过IP地址127.0.0.1定位到⽹络上的⼀台计算机, 127.0.0.1就是本机
  •  通过端⼝号8080找到计算机上对应的进程 , 也就是在本地计算机中找到正在运⾏的8080端⼝的 程序
  • /user/hello是请求资源位置
  •      资源:对计算机⽽⾔资源就是数据
  •       web资源:通过⽹络可以访问到的资源(通常是指存放在服务器上的数据) http://127.0.0.1:8080/user/hello ,就是向本地计算机中的8080端⼝程序,获取资源位置 是/user/hello的数据 8080端⼝程序,在服务器找/hello位置的资源数据,发给浏览器

服务器:

  • 接收到浏览器发送的信息(如:/user/sayhi) 
  • 在服务器上找到/user/hello的资源
  • 把资源发送给浏览器

 

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

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

相关文章

基础篇03——SQL约束

概述 约束示例 完成以下案例&#xff1a; create table user (id int primary key auto_increment comment 主键,name varchar(10) not null unique comment 姓名,age tinyint unsigned check ( age > 0 and age < 120 ) comment 年龄,status char(1) default 1 commen…

VUE3 学习笔记(13):VUE3 下的Element-Plus基本使用

UI是页面的门面&#xff0c;一个好的UI自然令人赏心悦目&#xff1b;国人团队开发的ElementUI在众多UI中较为常见&#xff0c;因此通过介绍它的使用让大家更好的了解第三方UI的使用。 安装 Npm install element-plus --save 或 Cnpm install element-plus --save 配置 全局配置…

广告联盟是不是看广告就有米

如果你在别人app里面看广告&#xff0c;你是个普通用户&#xff0c;那么你可以随时提现&#xff0c;如果你是app主&#xff0c;那么你自己看广告和用户帮你看广告的收益都是广告平台次月结算给你&#xff0c;一般是次月15号出账单、开票审核打款。 但是如果你在这期间自刷被平台…

【电子书赠送福利】蘇小沐电子数据取证实务教程!风吹哪页读哪页,哪页不会撕哪页!

【电子书赠送福利】蘇小沐电子数据取证实务教程&#xff01;风吹哪页读哪页&#xff0c;哪页不会撕哪页&#xff01; 合并文章的时候才发现自己写了那么多&#xff0c;受限于时间&#xff0c;第一次合集版本只收录了已发博客的三分之二左右&#xff0c;暂时先这样&#xff01;…

突破开源天花板!最强文本转语音工具ChatTTS:对话式高可控的语音合成模型

ChatTTS 一夜爆火&#xff0c; 极速出圈&#xff0c; 3 天就斩获 9k 的 Star 量&#xff0c; 截止 2024.06.04&#xff0c; 已经 19.3k 的 star&#xff0c; 极速接近 GPT-soVITs 当天的 26.2k 的 star 数。 什么是ChatTTS&#xff1f; TTS全称&#xff1a;Text To Speech&am…

机器视觉——找到物块中心点

首先先介绍一下我用的是HALCON中的HDevelop软件。 大家下载好软件后可以测试一下&#xff1a; 在程序编辑器窗口中输入下面指令&#xff1a; read_image(Image,monkey) 那么如果出现这样的图片&#xff0c;说明是没有问题的 那么本次编程采用的是下面这张图片 我们要达到的…

Rocky linux 搭建DNS主从服务器+keepalived实现高可用

接上两篇文章&#xff0c;这篇文章跟上两篇没有直接关系。 第一篇&#xff1a;linux rocky 搭建DNS服务和禁止AD域控DNS&#xff0c;做到独立DNS并加域_linux 域控-CSDN博客文章浏览阅读519次&#xff0c;点赞20次&#xff0c;收藏10次。使用linux rocky 搭建DNS服务&#xff…

景源畅信电商:抖音小店怎么做好运营?

在如今这个数字化时代&#xff0c;电商平台如雨后春笋般涌现&#xff0c;其中抖音小店以其独特的短视频营销模式迅速崛起。如何在这个竞争激烈的市场中占据一席之地&#xff0c;成为了许多商家和创业者思考的问题。下面&#xff0c;我们将深入探讨抖音小店的运营策略&#xff0…

淘宝镜像的https证书过期

错误原因&#xff1a; 淘宝镜像过期 早在 2021 年&#xff0c;淘宝就发文称&#xff0c;npm 淘宝镜像已经从 http://registry.npm.taobao.org 切换到了 http://registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务&#xff08;直到 HTTPS 证书到期才真正不能用了…

一图读懂:Flink CDC如何流式写入Paimon?

一图读懂&#xff1a;Flink CDC如何流式写入Paimon&#xff1f; 以Mysql CDC至Paimon为例 整体架构 MySQL CDC SourceSnapshotReader读取快照全量数据&#xff0c;BinlogReader读取增量数据。 paimon sink 实现桶级别的写入&#xff0c;compactManager实现异步compaction co…

SpaceX: 太空火箭自主精准着陆

本文是根据Lars Blackmore在16年的一篇公开论文翻译而来&#xff0c;虽然有些早而且是科普文章&#xff0c;但是可以初见一些SpaceX火箭着陆的细节&#xff0c;后面我会对spaceX landing control 技术主管MIT博士期间研究火箭控制算法的论文进行讲解&#xff0c;敬请期待。 Lar…

【数据结构】二叉搜索树--BST,Binary Search Tree

文章目录 二叉搜索树1. 二叉搜索树的概念2. 二叉搜索树的接口2.1 查找非递归查找递归查找 2.2 中序遍历2.3 插入非递归插入递归插入 2.4 删除非递归删除递归删除 3. 二叉搜索树的应用key搜索模型kv搜索模型 5. oj题 二叉搜索树 1. 二叉搜索树的概念 二叉搜索树又称二叉排序树…

2021 hnust 湖科大 操作系统课设 报告+原代码+指导书+流程图源文件

2021 hnust 湖科大 操作系统课设 报告原代码指导书流程图源文件 详情 目录 验证类实验&#xff1a; 1 实验一&#xff1a;Windows进程管理 1 一、 实验题目&#xff1a; 1 二、 实验目的 1 三、 实验内容 1 四、 实验结果与分析 2 五、 小结与心得体会 5 实验二&#xff1a;L…

团队项目开发使用git工作流(IDEA)【精细】

目录 开发项目总体使用git流程 图解流程 1.创建项目仓库[组长完成] 2. 创建项目&#xff0c;并进行绑定远程仓库【组长完成】 3.将项目与远程仓库&#xff08;gitee&#xff09;进行绑定 3.1 创建本地的git仓库 3.2 将项目添加到缓存区 3.3 将项目提交到本地仓库&#…

【光谱特征选择】连续投影算法SPA(含python代码)

目录 一、背景 二、代码实现 三、项目代码 一、背景 连续投影算法&#xff08;Successive Projection Algorithm&#xff0c;SPA&#xff09;是一种用于光谱分离的简单且有效的算法。它主要应用于高光谱图像处理&#xff0c;用于提取混合光谱数据中的端元&#xff08;endme…

从1.0到4.0,看看你公司的费控模式是第几代?

早在2021年9月&#xff0c;艾媒咨询在《2021H1企业费控报销服务专题研究报告》中&#xff0c;第一次对企业费用管控模式的进化历程进行了清晰的划代&#xff1a;1.0手工模式、2.0网报模式、3.0移动报销模式、4.0智能费控模式。 2022年&#xff0c;在《中国企业费用管理发展白皮…

边缘计算网关:企业数字化转型的重要支撑-天拓四方

在数字化浪潮席卷全球的今天&#xff0c;企业对于数据处理和传输的需求日益增强。然而&#xff0c;传统的数据处理模式往往依赖于中心化的数据中心&#xff0c;这种方式在处理大量数据时存在延迟高、成本高、安全性差等问题。数据量的激增和实时性要求的提高&#xff0c;使得传…

6个迹象表明你的电脑电缆管理很糟糕,看下你有没有中招

​清理电脑内部的电缆可能看起来像是徒劳的忙碌。毕竟,如果一切都正常,为什么还要麻烦呢?好吧,我有六个很好的理由可以说服你打开你的机箱,修复你电脑里的混乱。 你很难打开侧板 如果你的电缆离侧板的边缘太近,你将无法毫不费力地将它们滑开。虽然这不是你每天都要做的…

AUTOSAR术语表

AUTOSAR术语表 下面所有的缩写词汇均来自AUTOSAR官方资料AUTOSAR_TR_GLOSSARY.pdf&#xff0c;平常工作中遇到不知道意思的缩略词&#xff0c;编写代码取名称时都可以参考这个术语表。