Springboot3+JDK17搭建后端入门教程
本文介绍了如何使用Springboot3和JDK17搭建后端入门项目,涵盖准备工作、创建项目、配置项目结构与核心概念、创建RESTful API服务以及运行和调试项目。通过详细步骤和示例代码,帮助开发者快速上手Spring Boot 3+JDK17搭建后端入门。本文从环境配置、项目开发到运行调试的全过程进行了介绍。
准备工作检查系统环境
在开始开发Spring Boot项目之前,需要确保开发环境满足以下条件:
- 操作系统:Windows、macOS、Linux等
- Java版本:JDK 17
- 开发工具:IntelliJ IDEA或Spring Tool Suite等
安装JDK17
- 访问Oracle官网或Eclipse官网下载JDK 17版本。
- 安装JDK,确保安装过程中勾选将JDK添加到环境变量中。
- 验证安装是否成功。
java -version
如果安装成功,应显示JDK版本信息如下:
java version "17"...
安装IDE
推荐使用IntelliJ IDEA或Spring Tool Suite(STS)。
IntellJ IDEA
- 访问IntelliJ IDEA官网下载社区版或专业版。
- 安装IDE,选择合适的安装路径。
- 启动IDE并进行必要的配置,如设置工作目录、配置VM选项等。
Spring Tool Suite(STS)
- 访问Spring官网下载STS。
- 安装STS,选择合适的安装路径。
- 启动STS并进行必要的配置。
使用Spring Initializr创建新项目
Spring Initializr是一个在线工具,可以帮助快速创建Spring Boot项目。
- 打开Spring Initializr网站:https://start.spring.io/
- 选择项目基本信息:
- Project: Maven Project
- Language: Java
- Spring Boot: 3.0.0
- Dependencies: 添加需要的依赖,如Web、Thymeleaf、JPA等
- 点击“Generate”按钮下载项目压缩包。
- 解压项目压缩包到指定目录。
导入项目到IDE
- 打开IDE,选择导入项目。
- 选择解压后的项目根目录。
- 完成项目导入。
配置项目基础信息
在pom.xml
(Maven项目)或build.gradle
(Gradle项目)中配置项目信息:
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
项目结构与核心概念
Spring Boot核心概念简介
Spring Boot是一个构建在Spring框架上的轻量级、独立的开发框架,它通过约定优于配置的原则简化了Spring应用的开发。
核心特性:
- 自动配置:自动配置Spring模块。
- 依赖管理:自动处理依赖版本。
- 配置文件:支持多种配置文件格式(如YAML、properties)。
- 命令行运行:可以直接运行JAR包。
- 插件:内置了Spring Boot插件,简化构建过程。
Maven/Gradle构建工具配置
Maven配置
在pom.xml
文件中配置项目依赖和插件。
<dependencies>
<!-- 添加Spring Boot Web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 添加Thymeleaf模板引擎依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 添加Spring Boot Maven插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Gradle配置
在build.gradle
文件中配置项目依赖和插件。
dependencies {
// 添加Spring Boot Web依赖
implementation 'org.springframework.boot:spring-boot-starter-web'
// 添加Thymeleaf模板引擎依赖
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}
plugins {
// 添加Spring Boot Gradle插件
id 'org.springframework.boot' version '3.0.0'
}
Spring Boot配置文件介绍
Spring Boot使用application.properties
或application.yml
配置文件来管理配置信息。
application.properties
# 配置端口
server.port=8080
# 配置数据源
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
application.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: root
创建RESTful API服务
创建第一个Controller
创建一个简单的RESTful API服务,用于返回Hello World。
- 创建一个名为
HelloController
的Controller类。
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
- 运行项目,访问
http://localhost:8080/hello
,应返回Hello, World!
。
添加实体类与Repository
创建一个简单的实体类和对应的Repository。
- 创建一个名为
User
的实体类。
package com.example.demo.entity;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// Getter和Setter方法
}
- 创建一个名为
UserRepository
的Repository接口。
package com.example.demo.repository;
import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
使用Spring Boot Starter进行数据库配置
- 在
pom.xml
(Maven)或build.gradle
(Gradle)中添加JPA依赖。
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Gradle -->
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
- 配置数据库连接信息。
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
- 创建一个简单的Controller来测试数据库连接。
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/users")
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
运行与调试项目
运行Spring Boot应用
- 使用IDE运行项目。在IntelliJ IDEA中,右键点击主类(如
DemoApplication.java
),选择Run。 - 使用Maven或Gradle命令运行项目。
# Maven
mvn spring-boot:run
# Gradle
./gradlew bootRun
使用IDE进行调试
- 设置断点。在代码中设置断点。
- 运行调试。在IntelliJ IDEA中,选择菜单
Run
->Debug
,选择要调试的主类。
访问API接口测试
- 访问
http://localhost:8080/hello
,验证HelloController
是否正常工作。 - 访问
http://localhost:8080/users
,验证UserController
是否正常工作。
常见错误及其解决方法
错误1:找不到类或方法
检查以下几点:
- 依赖是否正确添加。
- 依赖版本是否匹配。
- 类路径是否正确。
示例:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
错误2:数据库连接失败
检查以下几点:
- 配置文件中的数据库连接信息是否正确。
- 数据库服务是否启动。
- 数据库驱动是否正确添加。
示例:
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
错误3:Spring Boot启动失败
检查以下几点:
- 项目结构是否正确。
- 依赖是否重复。
- 是否存在编译错误。
示例:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
依赖冲突及其解决
依赖冲突
依赖冲突通常是因为多个依赖库定义了相同的类,导致加载冲突。可以通过mvn dependency:tree
(Maven)或./gradlew dependencies
(Gradle)命令查看依赖树,找到冲突源并解决。
示例:
# Maven
mvn dependency:tree
# Gradle
./gradlew dependencies
解决方法
- 删除重复依赖。
- 修改依赖版本,使用兼容的版本。
示例:
<!-- Maven -->
<dependency>
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0.0</version>
</dependency>
运行时异常处理
异常1:NullPointerException
检查以下几点:
- 是否有空值赋值。
- 是否调用了空对象的方法。
示例:
String name = null;
System.out.println(name.length());
异常2:IOException
检查以下几点:
- 文件是否正确存在。
- 文件路径是否正确。
示例:
File file = new File("path/to/file.txt");
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line = reader.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
异常3:HibernateException
检查以下几点:
- 数据库连接信息是否正确。
- 数据库驱动是否正确添加。
- 数据库表是否存在。
示例:
package com.example.demo.repository;
import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章