为了账号安全,请及时绑定邮箱和手机立即绑定

Springboot3+JDK17搭建后端学习入门教程

标签:
Java SpringBoot
概述

本文详细介绍了如何使用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)版本,稳定性较高且拥有良好的社区支持。

安装步骤:

  1. 访问Oracle官方网站或AdoptOpenJDK等第三方网站下载JDK 17安装包。
  2. 解压下载的安装包。
  3. 设置环境变量。
    • 打开系统环境变量设置窗口,添加JDK安装路径到Path环境变量中。
    • 设置JAVA_HOME环境变量,值应指向JDK 17的安装目录。
  4. 验证安装是否成功,打开命令行窗口执行命令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搭建项目:

  1. 访问Spring Initializr网站。
  2. 选择项目信息:
    • 项目类型:Maven
    • 语言:Java
    • Java版本:选择JDK 17版本。
    • Spring Boot版本:选择3.x.x版本。
  3. 选择项目依赖:选择需要的starter,如Web、JPA等。
  4. 生成项目后,下载并解压生成的项目文件。

使用命令行搭建项目:

  1. 下载并安装Spring Boot CLI。
  2. 使用命令行生成项目:
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作为开发工具。

配置步骤:

  1. 下载并安装IntelliJ IDEA。
  2. 打开IntelliJ IDEA,创建新项目。
  3. 选择"Maven"项目类型,输入项目名称,并确保选择的JDK版本为17。
  4. 在项目目录中,导入刚刚下载的Spring Boot项目文件。

创建Spring Boot项目

使用IDEA创建Spring Boot项目后,需要配置pom.xml文件以及添加基本依赖。

创建步骤:

  1. 在项目根目录下找到pom.xml文件。pom.xml是Maven项目的配置文件,用来定义项目依赖、构建配置等信息。
  2. 打开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请求。

创建步骤:

  1. src/main/java目录下创建包结构,例如com.example.demo.controller
  2. 在该包下创建一个名为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项目,测试接口是否正常工作。

运行项目:

  1. 在IDEA中,右键点击主类(如DemoApplication.java),选择运行或调试。
  2. 打开浏览器,访问http://localhost:8080/hello,若看到Hello, Spring Boot 3 and JDK 17!则说明接口工作正常。
数据库集成

连接数据库

为了集成数据库,需要在application.propertiesapplication.yml文件中配置数据库连接信息。

配置步骤:

  1. src/main/resources目录下找到并打开application.properties文件。
  2. 根据实际情况添加数据库连接配置:
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.modelcom.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提供的调试功能进行调试。

调试步骤:

  1. 在代码中设置断点。
  2. 在IDEA中,选择要调试的主类(如DemoApplication.java)。
  3. 选择运行配置中的"Debug"选项。
  4. 执行调试操作,程序将在设置的断点处暂停,允许逐步执行代码并查看变量值。

通过这种方式,可以深入理解程序执行流程和变量状态,从而轻松定位和解决问题。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消