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

Springboot3+JDK17搭建后端资料详解

标签:
Java SpringBoot
概述

本文详细介绍了如何使用Spring Boot 3和JDK 17搭建后端项目,涵盖环境准备、项目创建、基本配置、开发RESTful API和数据库集成的全过程。从下载安装JDK 17和Spring Boot 3开始,逐步引导读者完成项目搭建,确保每个步骤都清晰明了。此外,还介绍了如何运行和部署Spring Boot应用,帮助读者顺利完成后端开发任务。

环境准备

在开始搭建Spring Boot 3 + JDK 17后端项目之前,需要准备开发环境。这包括下载并安装JDK 17和Spring Boot 3。

下载并安装JDK 17

  1. 访问JDK官方网站,下载JDK 17版本。
  2. 安装JDK 17,确保安装过程中设置环境变量。
  3. 验证JDK安装成功,可以通过命令行输入java -version来检查JDK版本。

下载并安装Spring Boot 3

  1. 访问Spring Boot官方网站,下载Spring Boot 3的最新版本。
  2. 解压下载的压缩包,获取Spring Boot CLI工具。
  3. 将Spring Boot CLI工具添加到系统环境变量中,以便在命令行中使用。
  4. 验证安装成功,可以通过命令行输入spring --version来检查Spring Boot CLI版本。
创建Spring Boot项目

在准备好开发环境后,下一步是创建一个新的Spring Boot项目。

使用Spring Initializr创建新项目

  1. 访问Spring Initializr网站(https://start.spring.io/)。
  2. 在网站上选择项目的基本信息,例如项目类型、语言、依赖等。确保选择JavaMaven作为构建工具,选择Java 17作为Java版本。
  3. 选择需要的依赖,如Spring WebSpring Data JPASpring DevTools
  4. 点击Generate按钮,下载生成的项目压缩包。
  5. 解压压缩包,得到项目文件夹。

导入项目到IDE中

  1. 打开IDE(如IntelliJ IDEA或Eclipse)。
  2. 导入解压后的项目文件夹,确保项目设置为Maven项目。
  3. 在IDE中,右键点击pom.xml文件,选择Maven -> Reload Project来刷新项目依赖。
  4. 验证项目结构是否正确,检查src/main/javasrc/main/resources目录是否存在。
项目基本配置

接下来,设置项目的基本配置,包括应用端口和数据源。

设置应用端口

  1. 打开src/main/resources/application.properties文件。
  2. 添加以下配置来设置应用端口:
server.port=8080

配置数据源

  1. application.properties文件中添加数据库连接配置:
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
开发第一个RESTful API

接下来,将创建一个简单的RESTful API,包括实体类、服务类和控制器类。

创建实体类

  1. src/main/java/com/example/demo目录下创建一个新的包model
  2. model包下创建一个名为User.java的实体类:
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
    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;
    }
}

创建服务和控制器

  1. src/main/java/com/example/demo目录下创建一个新的包service
  2. service包下创建一个名为UserService.java的服务类:
package com.example.demo.service;

import com.example.demo.model.User;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class UserService {
    private List<User> users = new ArrayList<>();

    public List<User> getAllUsers() {
        return users;
    }

    public User getUserById(Long id) {
        return users.stream().filter(user -> user.getId().equals(id)).findFirst().orElse(null);
    }

    public User addUser(User user) {
        user.setId(users.size() + 1L);
        users.add(user);
        return user;
    }

    public User updateUser(Long id, User user) {
        User existingUser = getUserById(id);
        if (existingUser != null) {
            existingUser.setName(user.getName());
            existingUser.setEmail(user.getEmail());
        }
        return existingUser;
    }

    public boolean deleteUser(Long id) {
        User user = getUserById(id);
        return users.remove(user);
    }
}
  1. src/main/java/com/example/demo目录下创建一个新的包controller
  2. controller包下创建一个名为UserController.java的控制器类:
package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PostMapping
    public User addUser(@RequestBody User user) {
        return userService.addUser(user);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        return userService.updateUser(id, user);
    }

    @DeleteMapping("/{id}")
    public boolean deleteUser(@PathVariable Long id) {
        return userService.deleteUser(id);
    }
}

测试API

  1. 启动Spring Boot应用。
  2. 使用Postman或curl工具测试API。例如,使用curl测试添加用户:
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d '{"name":"John Doe", "email":"john.doe@example.com"}'
数据库集成

接下来,将配置数据库连接,并使用JPA进行数据操作。

连接数据库

  1. application.properties文件中配置数据库连接信息:
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
  1. 配置实体类的JPA注解:
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
    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;
    }
}

使用JPA进行数据操作

  1. 创建一个新的服务类来操作数据库:
package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
public class UserServiceJPA {
    @Autowired
    private UserRepository userRepository;

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

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

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

    public User updateUser(Long id, User user) {
        User existingUser = userRepository.findById(id).orElse(null);
        if (existingUser != null) {
            existingUser.setName(user.getName());
            existingUser.setEmail(user.getEmail());
            return userRepository.save(existingUser);
        }
        return null;
    }

    public boolean deleteUser(Long id) {
        userRepository.deleteById(id);
        return true;
    }
}
  1. 创建一个新的接口(Repository)来定义JPA操作:
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> {
}
  1. 在控制器中使用新的Service:
package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserServiceJPA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserServiceJPA userServiceJPA;

    @GetMapping
    public List<User> getAllUsers() {
        return userServiceJPA.getAllUsers();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userServiceJPA.getUserById(id);
    }

    @PostMapping
    public User addUser(@RequestBody User user) {
        return userServiceJPA.addUser(user);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        return userServiceJPA.updateUser(id, user);
    }

    @DeleteMapping("/{id}")
    public boolean deleteUser(@PathVariable Long id) {
        return userServiceJPA.deleteUser(id);
    }
}
运行和部署

最后,将开始运行和部署Spring Boot应用。

启动应用

  1. 在IDE中运行DemoApplication类的主方法,或者使用命令行运行mvn spring-boot:run

  2. 打开浏览器,访问http://localhost:8080/users,查看API接口是否正常运行。

打包并部署应用

  1. 打包应用,执行以下命令:
mvn clean package
  1. 打包完成后,在target目录下生成了demo-0.0.1-SNAPSHOT.jar文件。

  2. 使用命令行运行生成的JAR文件:
java -jar target/demo-0.0.1-SNAPSHOT.jar
  1. 将应用部署到服务器,可以通过Docker容器化部署或者直接上传到服务器运行。
点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消