【Java项目脚手架系列】第六篇:Spring Boot + JPA项目脚手架

发布于:2025-05-12 ⋅ 阅读:(14) ⋅ 点赞:(0)

【Java项目脚手架系列】第六篇:Spring Boot + JPA项目脚手架

前言

在前面的文章中,我们介绍了 Spring Boot + MyBatis 项目脚手架。今天,我们将介绍 Spring Boot + JPA 项目脚手架,这是一个用于快速搭建企业级应用的框架。

什么是 Spring Boot + JPA?

Spring Boot + JPA 是一个强大的组合,它提供了:

  1. Spring Boot 的快速开发能力
  2. JPA 的对象关系映射
  3. 完整的数据库操作支持
  4. 事务管理能力
  5. 测试框架支持

技术栈

  • Spring Boot 2.7.0:核心框架
  • Spring Data JPA:持久层框架
  • MySQL 8.0:关系型数据库
  • H2 Database:内存数据库,用于测试
  • JUnit 5:测试框架
  • Mockito:测试框架
  • Maven 3.9.6:项目构建工具

Spring Boot + JPA 项目脚手架

1. 项目结构

src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           ├── Application.java
│   │           ├── config
│   │           │   └── DataInitializer.java
│   │           ├── controller
│   │           │   └── UserController.java
│   │           ├── entity
│   │           │   └── User.java
│   │           ├── repository
│   │           │   └── UserRepository.java
│   │           └── service
│   │               ├── UserService.java
│   │               └── impl
│   │                   └── UserServiceImpl.java
│   └── resources
│       └── application.yml
└── test
    └── java
        └── com
            └── example
                ├── controller
                │   └── UserControllerTest.java
                ├── repository
                │   └── UserRepositoryTest.java
                └── service
                    └── UserServiceTest.java

2. 核心文件内容

2.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>springboot-jpa-scaffold</artifactId>
    <version>1.0-SNAPSHOT</version>

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

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- Spring Boot Starter Web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Boot Starter Data JPA -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- MySQL Driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- H2 Database -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Spring Boot Starter Test -->
        <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>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
               

网站公告

今日签到

点亮在社区的每一天
去签到