当前位置: 首页 > article >正文

详细且系统的Spring Boot应用开发

为了帮助大家更好地理解如何使用Spring Boot来构建一个基础的Web应用程序,我将通过一个简单的例子来进行说明。这个例子将是一个基本的RESTful API服务,用于管理图书信息。

项目准备

1. 开发环境设置(这个我之前有发文,这里就不详细说明,大家如果没有就回去再看看)
  • Java版本:确保安装了JDK 8或更高版本。
  • IDE:推荐使用IntelliJ IDEA或者Eclipse。
  • 构建工具:Maven或Gradle。本示例中使用Maven。
2. 创建Spring Boot项目

你可以通过Spring Initializr (https://start.spring.io/) 快速创建一个项目。选择以下选项:

  • Project:Maven Project
  • Language:Java
  • Spring Boot:最新稳定版
  • Group:com.example
  • Artifact:bookstore
  • Name:bookstore
  • Description:A simple book management application
  • Package name:com.example.bookstore
  • Packaging:Jar
  • Java:8 or later

添加以下依赖:

  • Spring Web
  • Spring Data JPA
  • H2 Database (内存数据库,方便测试)
  • Lombok (可选,简化代码)

点击“Generate”下载项目压缩包,并解压到你的工作目录。

项目结构

解压后的项目应该包含以下主要文件和目录:

  • src/main/java/com/example/bookstore - 存放源代码
  • src/main/resources - 存放资源文件,如配置文件和静态资源
  • pom.xml - Maven配置文件

编写代码

1. 实体类(Entity)

com.example.bookstore.entity下创建Book.java

package com.example.bookstore.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private String author;
    private double price;

    // Getters and Setters
}
2. 数据访问层(Repository)

com.example.bookstore.repository下创建BookRepository.java

package com.example.bookstore.repository;

import com.example.bookstore.entity.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends JpaRepository<Book, Long> {
}
3. 业务逻辑层(Service)

com.example.bookstore.service下创建BookService.javaBookServiceImpl.java

package com.example.bookstore.service;

import com.example.bookstore.entity.Book;
import java.util.List;

public interface BookService {
    List<Book> findAllBooks();
    Book findBookById(Long id);
    Book saveBook(Book book);
    void deleteBook(Long id);
}
package com.example.bookstore.service;

import com.example.bookstore.entity.Book;
import com.example.bookstore.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {

    @Autowired
    private BookRepository bookRepository;

    @Override
    public List<Book> findAllBooks() {
        return bookRepository.findAll();
    }

    @Override
    public Book findBookById(Long id) {
        return bookRepository.findById(id).orElse(null);
    }

    @Override
    public Book saveBook(Book book) {
        return bookRepository.save(book);
    }

    @Override
    public void deleteBook(Long id) {
        bookRepository.deleteById(id);
    }
}
4. 控制层(Controller)

com.example.bookstore.controller下创建BookController.java

package com.example.bookstore.controller;

import com.example.bookstore.entity.Book;
import com.example.bookstore.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/books")
public class BookController {

    @Autowired
    private BookService bookService;

    @GetMapping
    public List<Book> getAllBooks() {
        return bookService.findAllBooks();
    }

    @GetMapping("/{id}")
    public Book getBookById(@PathVariable Long id) {
        return bookService.findBookById(id);
    }

    @PostMapping
    public Book addBook(@RequestBody Book book) {
        return bookService.saveBook(book);
    }

    @DeleteMapping("/{id}")
    public void deleteBook(@PathVariable Long id) {
        bookService.deleteBook(id);
    }
}

配置文件

编辑src/main/resources/application.properties以配置H2数据库:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true

运行项目

  • 在IDE中运行主类BookstoreApplication.java中的main方法。
  • 访问http://localhost:8080/h2-console以查看和操作数据库。
  • 使用Postman或其他API测试工具测试你的API。

以上就是一个简单的Spring Boot应用程序的完整流程。你可以根据需要扩展功能(这个建立在自己有所了解的基础上,如果有啥不懂的,欢迎大家来询问)比如增加用户认证、异常处理等。希望这能帮助你入门Spring Boot开发!


http://www.kler.cn/news/367920.html

相关文章:

  • HTML+CSS实现超酷超炫的3D立方体相册
  • w001基于SpringBoot的在线拍卖系统
  • 攻防世界的新手web题解
  • C语言程序设计:现代设计方法习题笔记《chapter5》下篇
  • 量子变分算法 (python qiskit)
  • HTML+JavaScript案例分享: 打造经典俄罗斯方块,详解实现全过程
  • 还没想好说什么
  • 【负二进制】个人练习-Leetcode-1073. Adding Two Negabinary Numbers
  • 从零开始:用Spring Boot搭建厨艺分享网站
  • Linux:指令再认识
  • 使用 Python 实现智能地震预警系统
  • Python画笔案例-094 绘制 神奇彩条动画
  • 【报错】FastGPT本地部署通义千问,报错undefined 当前分组 default 下对于模型 qwen:7b 无可用渠道 【搭建企业级知识库问答系统】
  • 视觉工具与C#联合开发图片格式转换
  • 猫头虎 分享已解决Bug || RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED 解决方案
  • 第十一部分 Java 数据结构及集合
  • 速盾:高防cdn怎么拦截恶意ip?
  • Matlab数字图像处理——基于形态学处理的硬币计数系统(含m文件和GUI)
  • 华为原生鸿蒙操作系统的发布有何重大意义和影响:
  • PHP-FPM 性能配置优化
  • 面试宝典(四):Java8的新特性
  • Android 应用申请 Google MBA权限
  • Vue2 关于指令
  • 【PHP】ThinkPHP获取请求的域名及前缀
  • 直播系统源码技术搭建部署流程及配置步骤
  • 嵌入式Linux的AXI平台(platform)驱动教程