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

Springboot3+JDK17搭建后端资料:简单教程入门

标签:
SpringBoot
概述

本文详细介绍了如何使用Spring Boot 3和JDK 17搭建后端项目,包括环境配置、项目创建、基础功能开发和部署运行等步骤,帮助开发者快速上手。文中还提供了示例代码和调试技巧,确保读者能够顺利完成开发任务。

引入与环境搭建

Spring Boot 3 简介

Spring Boot 是一个由 Pivotal 提供支持的开发框架,用于简化 Spring 应用的初始搭建及配置过程。Spring Boot 3 是 Spring Boot 的最新版本,它提供了许多新的特性和改进,以增强开发体验和应用程序的性能。Spring Boot 3 与 Spring Framework 的最新版本 6.0.0 兼容,提供了对现代 Java 开发工具链的支持,包括改进的性能、增强的安全功能和扩展的依赖库支持。

JDK 17 简介

JDK 17 是 Java 平台的标准实现,也是长期支持(LTS)版本之一。它包括了 Java 编程语言、Java 虚拟机(JVM)、集合框架、并发工具、I/O 类库、网络和文件系统 API 以及其他核心组件。JDK 17 引入了新的特性和改进,包括记录类、模式匹配、密封类等。这些特性可以提高 Java 代码的可读性和可维护性。此外,JDK 17 还提供了性能增强和安全性改进,使得开发人员可以更加专注于业务逻辑的实现。

开发环境配置

为了开始使用 Spring Boot 3 和 JDK 17 进行开发,你需要确保安装了以下工具:

  1. JDK 17: 下载并安装 JDK 17,确保环境变量已正确配置。在命令行中输入 java -versionjavac -version,可以检查是否安装成功并输出相应版本信息。

  2. IDE: 推荐使用 IntelliJ IDEA 或 Eclipse。安装并配置好 IDE 后,可以通过以下步骤创建一个新的 Spring Boot 项目。

    • IntelliJ IDEA: 打开 IntelliJ IDEA,选择 File -> New -> Project,在弹出的窗口中选择 Spring Initializr,填写项目的基本信息,点击 Next,选择 Java 作为项目语言,勾选 Maven 作为构建工具,勾选 Spring Web 作为依赖,点击 Next,然后点击 Finish 完成创建。

    • Eclipse: 打开 Eclipse,选择 File -> New -> Spring Starter Project,填写项目的基本信息,点击 Next,在 Dependencies 页面中选择 Spring Web 作为依赖,点击 Next,然后点击 Finish 完成创建。

创建首个 Spring Boot 3 项目

使用 Spring Initializr 创建项目

Spring Initializr 是一个在线的项目生成工具,可以在其官方网站上找到。它允许用户通过简单的步骤快速生成基于 Spring Boot 的项目。以下是创建项目的步骤:

  1. 访问 Spring Initializr 官网:https://start.spring.io/
  2. 在左侧的 Project 选项卡中选择 Maven Project,并勾选 Java 作为项目语言。
  3. Language 选项卡中选择 Java
  4. Packaging 选项卡中选择 Jar
  5. Dependencies 选项卡中,勾选 Spring Web 作为第一个依赖。
  6. 滚动页面底部,选择 Java Version17,并在 Project Metadata 中填写项目的基本信息。
  7. 点击 Generate 按钮,将生成的项目压缩包下载到本地。
  8. 解压下载的压缩包,使用 IDE 打开项目。

项目结构解析

创建项目后,项目结构如下:

  • src/main/java: 包含所有 Java 源代码文件。
  • src/main/resources: 包含项目的资源文件,如 application.propertiesapplication.yml
  • pom.xml: Maven 构建文件,用于管理项目的依赖关系和构建配置。

src/main/java 目录下通常会有一个默认包名的目录,例如 com.example.demo。在该目录下,你会看到一个主应用程序类,例如 DemoApplication.java

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

基础功能开发

控制器开发

控制器是 Spring Boot 应用中用于处理 HTTP 请求的主要组件。控制器通常通过注解 @Controller@RestController 标记。@RestController@Controller@ResponseBody 的组合,用于创建 RESTful API。

以下是一个简单的示例,创建一个控制器来处理 HTTP GET 请求:

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot 3!";
    }

}

数据访问开发

Spring Boot 提供了多种数据访问支持,包括 JPA、MyBatis、JdbcTemplate 等。这里我们以 JPA 为例,介绍如何使用 JPA 进行数据访问。

首先,需要在 pom.xml 中添加 JPA 依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

然后定义一个简单的实体类 User

package com.example.demo;

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;
    }

}

接下来定义一个 UserRepository 接口来操作 User 实体:

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

最后,创建一个服务类 UserService 来处理业务逻辑:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

}

使用 Maven 构建项目

Maven 简介

Maven 是一个强大的项目管理和构建工具,它可以管理项目构建、依赖关系和构建文档。Maven 使用一个基于约定的项目结构,并通过一个 pom.xml 文件来配置项目的构建信息。

在项目中使用 Maven

pom.xml 文件中,你可以定义项目的依赖关系、构建配置和插件。以下是一个完整的 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>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.0</version>
    </parent>

    <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>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <properties>
        <java.version>17</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

运行与调试

如何运行 Spring Boot 应用

要运行 Spring Boot 应用,最简单的方式是在 IDE 中运行 DemoApplication 类的 main 方法。你也可以通过命令行运行:

mvn spring-boot:run

调试技巧

调试 Spring Boot 应用通常是在 IDE 中进行,以下是一些建议:

  • 断点设置: 在代码中设置断点,启动调试模式后运行应用。
  • 变量查看: 查看和修改变量的值。
  • 日志输出: 使用 logger 输出调试信息。
  • 异常捕获: 捕获并分析异常信息。

部署与运行

打包项目

要将项目打包为可执行的 JAR 文件,可以使用以下命令:

mvn clean package

这将生成一个位于 target 目录下的 JAR 文件。

在服务器上运行应用

要将应用部署到服务器上,可以遵循以下步骤:

  1. 将生成的 JAR 文件传输到目标服务器。
  2. 确保目标服务器上已经安装了 JDK 17。
  3. 使用以下命令运行 JAR 文件:
java -jar target/demo-0.0.1-SNAPSHOT.jar

也可以通过将应用部署到应用服务器(如 Tomcat、Jetty)来运行应用。如果是部署到 Tomcat,可以将生成的 WAR 文件部署到 Tomcat 的 webapps 目录下。

总结与实践示例

通过上述步骤,你已经成功搭建了一个 Spring Boot 3 和 JDK 17 的开发环境,并通过简单的示例代码进行了实践。在实际项目中,可以进一步扩展和优化这些功能,包括引入更多的依赖、开发更复杂的业务逻辑、优化性能和安全性等。

以下是总结代码示例:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot 3!";
    }

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/user")
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable Long id) {
        return userRepository.findById(id).orElse(null);
    }

}
package com.example.demo;

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;
    }

}
package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}
package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public User getUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

}
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消