Springboot3+JDK17搭建后端学习入门教程
本文详细介绍了如何使用Spring Boot 3和JDK 17搭建后端学习环境,包括JDK 17和Spring Boot 3的安装、开发环境配置、创建基本的REST接口、数据库集成以及测试和调试。通过这些步骤,可以快速构建起一个功能完善的Spring Boot后端应用。
环境搭建安装JDK17
为了搭建Spring Boot 3环境,首先需要安装JDK 17。JDK 17是长期支持(Long Term Support, LTS)版本,稳定性较高且拥有良好的社区支持。
安装步骤:
- 访问Oracle官方网站或AdoptOpenJDK等第三方网站下载JDK 17安装包。
- 解压下载的安装包。
- 设置环境变量。
- 打开系统环境变量设置窗口,添加JDK安装路径到
Path
环境变量中。 - 设置
JAVA_HOME
环境变量,值应指向JDK 17的安装目录。
- 打开系统环境变量设置窗口,添加JDK安装路径到
- 验证安装是否成功,打开命令行窗口执行命令
java -version
,若显示JDK 17版本信息,说明安装成功。
java -version
输出示例:
java version "17.0.2" 2022-01-18 LTS
Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)
安装Spring Boot 3
Spring Boot 3正式发布后,可以使用Spring Initializr或是通过Spring Boot CLI命令行工具进行项目搭建。
使用Spring Initializr搭建项目:
- 访问Spring Initializr网站。
- 选择项目信息:
- 项目类型:Maven
- 语言:Java
- Java版本:选择JDK 17版本。
- Spring Boot版本:选择3.x.x版本。
- 选择项目依赖:选择需要的starter,如Web、JPA等。
- 生成项目后,下载并解压生成的项目文件。
使用命令行搭建项目:
- 下载并安装Spring Boot CLI。
- 使用命令行生成项目:
spring init --dependencies=web,jpa my-spring-boot-app
生成的项目文件夹结构如下:
my-spring-boot-app
├── pom.xml
├── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ └── DemoApplication.java
│ ├── resources
│ │ └── application.properties
└── README.md
配置开发环境
为了更好地开发Spring Boot应用,需要配置开发环境。这里我们将使用IntelliJ IDEA作为开发工具。
配置步骤:
- 下载并安装IntelliJ IDEA。
- 打开IntelliJ IDEA,创建新项目。
- 选择"Maven"项目类型,输入项目名称,并确保选择的JDK版本为17。
- 在项目目录中,导入刚刚下载的Spring Boot项目文件。
创建Spring Boot项目
使用IDEA创建Spring Boot项目后,需要配置pom.xml
文件以及添加基本依赖。
创建步骤:
- 在项目根目录下找到
pom.xml
文件。pom.xml
是Maven项目的配置文件,用来定义项目依赖、构建配置等信息。 - 打开
pom.xml
文件,检查已经存在的基本依赖配置。若无配置则添加如下内容:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
完整的pom.xml
文件示例如下:
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Spring Boot 3 and JDK 17 Demo</description>
<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-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</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.xml
文件中,除了Spring Boot的核心依赖,还需要添加数据库驱动依赖。这里以MySQL为例:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
创建控制器
接下来,创建一个简单的控制器,用于响应HTTP请求。
创建步骤:
- 在
src/main/java
目录下创建包结构,例如com.example.demo.controller
。 - 在该包下创建一个名为
HelloController.java
的类。
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloController {
@GetMapping("/")
public String hello() {
return "Hello, Spring Boot 3 and JDK 17!";
}
}
编写简单的REST接口
在HelloController.java
中,我们定义了一个简单的REST接口,用于响应HTTP GET请求。
接口描述:
- URL路径:
/hello
- 请求类型:GET
- 返回值:字符串
运行项目测试接口
完成控制器创建后,可以运行整个Spring Boot项目,测试接口是否正常工作。
运行项目:
- 在IDEA中,右键点击主类(如
DemoApplication.java
),选择运行或调试。 - 打开浏览器,访问
http://localhost:8080/hello
,若看到Hello, Spring Boot 3 and JDK 17!
则说明接口工作正常。
连接数据库
为了集成数据库,需要在application.properties
或application.yml
文件中配置数据库连接信息。
配置步骤:
- 在
src/main/resources
目录下找到并打开application.properties
文件。 - 根据实际情况添加数据库连接配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
完整的application.properties
文件示例如下:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
使用JPA进行数据操作
Java Persistence API (JPA) 是Java EE平台中用于对象关系映射(Object-Relational Mapping, ORM)的标准规范。Spring Boot集成JPA,使用@Entity
注解定义实体类,@Repository
注解定义Repository接口。
实体类示例:
package com.example.demo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Repository接口示例:
package com.example.demo.repository;
import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
创建实体类和Repository接口
在src/main/java
目录下创建包结构,例如com.example.demo.model
和com.example.demo.repository
。
示例代码:
package com.example.demo.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// Getters and Setters...
}
package com.example.demo.repository;
import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
使用Spring Boot Starter
了解Spring Boot Starter的作用
Spring Boot Starter简化了开发过程,提供了一组核心依赖,可以快速建立起符合企业级规范的应用。每个Starter都是一个集成了多个依赖的模块,开发者只需要在pom.xml
文件中添加对应Starter即可。
添加和配置Spring Boot Starter
在pom.xml
文件中,添加需要的Starter模块。例如,添加Web starter和JPA starter:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
使用常见Starter(如Web、Data JPA等)
通过引入Spring Boot Starter,可以快速搭建web应用和数据库访问功能。
示例代码:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
测试和调试
单元测试介绍
单元测试是用来测试程序中最小可测试单元(例如函数、类或方法)的功能是否正常。在Spring Boot项目中,单元测试通常使用JUnit和Spring Test进行。
使用JUnit和Mockito进行测试
JUnit是Java编程语言的单元测试框架,而Mockito是一个模拟框架,用于创建和操作模拟对象。
示例代码:
package com.example.demo.repository;
import com.example.demo.model.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DataJpaTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testFindById() {
User user = new User();
user.setName("Test User");
user.setEmail("test@example.com");
userRepository.save(user);
Optional<User> result = userRepository.findById(user.getId());
assertEquals(Optional.of(user), result);
}
}
完整的单元测试代码示例如下:
package com.example.demo.repository;
import com.example.demo.model.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
@DataJpaTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testFindById() {
User user = new User();
user.setName("Test User");
user.setEmail("test@example.com");
userRepository.save(user);
Optional<User> result = userRepository.findById(user.getId());
assertEquals(Optional.of(user), result);
}
}
调试技巧和工具介绍
调试是发现和修复程序错误的过程。Spring Boot应用可以使用IDEA提供的调试功能进行调试。
调试步骤:
- 在代码中设置断点。
- 在IDEA中,选择要调试的主类(如
DemoApplication.java
)。 - 选择运行配置中的"Debug"选项。
- 执行调试操作,程序将在设置的断点处暂停,允许逐步执行代码并查看变量值。
通过这种方式,可以深入理解程序执行流程和变量状态,从而轻松定位和解决问题。
共同学习,写下你的评论
评论加载中...
作者其他优质文章