这里使用Idea 2023 专业版来创建项目
1、新建New Project👇
IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8?
分析Java17和Java 8(JDK1.8)的区别
- 版本号:Java 17 是 Java SE 17 的版本,而 JDK 1.8 是 Java SE 8 的版本。
- 发布时间:Java 17 发布于 2021 年,而 JDK 1.8 发布于 2014 年.
- 新特性:Java 17 相对于 JDK 1.8,新增了很多特性和改进,例如:Switch 表达式、Sealed 类、Pattern
- Matching for instanceof 等。
- 兼容性:Java 17 和 JDK 1.8 不兼容,由于 Java 的向后兼容性,Java 17 可以运行 JDK 1.8 的代码,但
- JDK 1.8 不支持 Java 17 的新特性。
- 安全性: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: 为静态资源或配置⽂件:
/static:静态资源⽂件夹, ⽐如前期学的js, css, html等静态⽂件, 不需要服务器数据进⾏绑定的 ⻚⾯
/templates:模版资源⽂件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需 要服务器动态渲染数据的⽂件
- •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的资源
- 把资源发送给浏览器
版权归原作者 lethelyh 所有, 如有侵权,请联系我们删除。