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

【SpringBoot从初学者到专家的成长14】SpringBoot项目结构介绍

初学者必备:SpringBoot项目结构一览

有了前面系列文章的介绍,理论知识已经初步了解,此时可以尝试建立你自己的第一个SpringBoot项目。在创建项目之前,还需要先了解一下一个SpringBoot项目的基本目录结构,因为它不仅帮助你更高效地组织代码,也能够更好地与团队协作,快速开发出高质量的应用。


1. SpringBoot项目的基本目录结构

一个典型的SpringBoot项目结构如下:

my-springboot-app/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myapplication/
│   │   │               ├── Application.java
│   │   │               ├── controller/
│   │   │               ├── service/
│   │   │               └── repository/
│   │   ├── resources/
│   │   │   ├── application.properties
│   │   │   └── static/
│   │   │   └── templates/
│   │   ├── webapp/
│   ├── test/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myapplication/
│   │   │               └── ApplicationTests.java
└── pom.xml (Maven) 或 build.gradle (Gradle)

每个目录和文件的功能在SpringBoot项目中都有明确的职责。接下来我们逐一讲解。


2. src/main/java 目录

在SpringBoot项目中,src/main/java 目录下存放的是Java源代码。以下是这个目录下常见的几个子目录和文件:

  • com/example/myapplication:这是你的主包,按照Java包命名规范来创建。这里通常会有多个子包,用来组织不同的功能模块。

    • Application.java:这是SpringBoot应用的启动类。通常它包含一个 main() 方法,并用 @SpringBootApplication 注解来标记。这是项目的入口类,SpringBoot会自动扫描该类所在包及其子包中的组件。

    • controller/:这个包用于存放Spring MVC的控制器类。控制器通常负责接收HTTP请求并返回响应数据。例如,处理RESTful API请求。

    • service/:这个包用于存放服务层代码,通常包含业务逻辑。在这个层级,你可以实现各种复杂的计算或数据处理逻辑。

    • repository/:用于存放数据访问层代码。通常包含与数据库交互的代码,Spring Data JPA或Spring JDBC模板的实现都可以放在这个包下。


3. src/main/resources 目录

src/main/resources 目录存放的是所有非代码文件,例如配置文件、静态资源、模板文件等。

  • application.propertiesapplication.yml:这是SpringBoot的默认配置文件,通常用来设置数据库连接、日志、服务器端口等常用配置。SpringBoot支持两种格式:.properties.yml

  • static/:存放静态资源文件,如HTML、CSS、JavaScript文件等。SpringBoot会自动映射 src/main/resources/static 目录下的文件为静态资源,通常用来存放前端页面。

  • templates/:如果你的应用是一个Web应用,并且使用了模板引擎(如Thymeleaf),则HTML模板文件应该存放在这个目录中。

  • application.properties 示例

    server.port=8081
    spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    spring.datasource.username=root
    spring.datasource.password=password
    

4. src/test/java 目录

src/test/java 目录用于存放单元测试代码。SpringBoot支持多种测试框架,如JUnit、TestNG等。在这个目录下,你可以编写针对Controller、Service等模块的单元测试。

  • ApplicationTests.java:默认的测试类。SpringBoot项目创建时,通常会自动生成一个 ApplicationTests.java 文件来验证项目的基本启动功能。

  • JUnit测试示例

    @SpringBootTest
    class ApplicationTests {@Testvoid contextLoads() {// 测试Spring上下文是否加载成功}
    }
    

5. 构建工具:pom.xmlbuild.gradle
  • pom.xml:如果你的项目是基于Maven构建的,pom.xml 是项目的配置文件,里面包含了所有的依赖项、插件配置以及构建信息。你可以在这个文件中定义项目的版本、依赖库等。

  • build.gradle:如果你的项目是基于Gradle构建的,则使用 build.gradle 配置文件。Gradle是另一种流行的构建工具,类似于Maven,但具有更灵活的配置能力。


6. 常用的SpringBoot目录结构优化
  • config/:存放应用的配置类,尤其是复杂的Java配置类(如Spring的配置类)。
  • exception/:存放自定义异常处理类。
  • model/entity/:存放实体类,这些类通常与数据库表映射。
  • dto/:存放数据传输对象(DTO),用于前后端数据交互。

7.idea + maven创建项目
使用 IDEA + Maven 创建 SpringBoot 项目结构的步骤(面向初学者)

在这篇文章中,我们将通过 IntelliJ IDEA + Maven 来创建一个简单的 SpringBoot 项目,并介绍如何组织项目结构。SpringBoot 是一个非常适合初学者的框架,它能够帮助你轻松地构建和开发 Java 应用程序。Maven 是一个流行的构建工具,它将管理你的依赖关系、构建过程以及项目生命周期。

以下是使用 IntelliJ IDEA + Maven 创建 SpringBoot 项目结构的详细步骤。


步骤 1: 安装 IntelliJ IDEA 和 Maven
  1. 安装 IntelliJ IDEA

    • 访问 IntelliJ IDEA 官方网站 下载并安装 IDEA。
    • 安装完成后,打开 IDEA。
  2. 安装 Maven(如果没有预装):

    • Maven 通常会与 IntelliJ IDEA 集成,因此大部分情况下,你不需要单独安装 Maven。但如果没有,可以去 Maven 官方网站 下载并安装。
    • 在 IDEA 中,点击 File > Settings > Build, Execution, Deployment > Build Tools > Maven,然后配置 Maven 的路径。

步骤 2: 创建 Maven 项目
  1. 启动 IntelliJ IDEA,点击 Create New Project

  2. 选择 Maven

    • 在新建项目的向导中,选择 Maven
    • 确保 Create from archetype 未选中。选择 Spring Boot 项目时,IDEA 会自动配置合适的 archetype(原型)。
    • 点击 Next
  3. 选择 JDK 版本

    • Project SDK 中选择你的 JDK 版本。如果你还没有安装 JDK,可以从 Oracle 官网 下载。
    • 点击 Next
  4. 填写项目信息

    • 输入 GroupIdArtifactId。例如:
      • GroupId: com.example
      • ArtifactId: my-springboot-app
    • GroupId 通常是项目的组织标识符,ArtifactId 是项目的名称。
    • 点击 Next
  5. 选择项目保存位置

    • 选择项目的存储路径并点击 Finish

步骤 3: 添加 Spring Boot 依赖
  1. 打开 pom.xml 文件

    • 在项目树中,找到并打开 pom.xml 文件。
  2. 添加 Spring Boot 依赖

    • pom.xml 文件中添加 Spring Boot 的父级 pom 配置以及必要的依赖。以下是基本配置:
    <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-thymeleaf</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><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version>  <!-- 使用最新的Spring Boot版本 -->
    </parent>
    
    • spring-boot-starter-web:用于构建Web应用程序(包括RESTful API)。
    • spring-boot-starter-data-jpa:用于与数据库交互。
    • spring-boot-starter-thymeleaf:用于支持Thymeleaf模板引擎。
    • spring-boot-starter-test:用于单元测试。
  3. 同步 Maven 依赖

    • 保存 pom.xml 文件后,IDEA 会自动提示你同步依赖。点击同步按钮以下载和导入依赖。

步骤 4: 创建项目结构
  1. 创建主应用类

    • src/main/java/com/example/myapplication/ 路径下创建 Application.java 文件。
    • 添加如下代码,这是项目的入口类:
    package com.example.myapplication;import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
    public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
    
    • @SpringBootApplication 注解告诉 Spring Boot 这是一个 Spring Boot 应用,并启动该应用。
  2. 创建 Controller 类

    • src/main/java/com/example/myapplication/controller/ 目录下创建 HelloController.java 文件,负责处理 HTTP 请求:
    package com.example.myapplication.controller;import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;@RestController
    public class HelloController {@GetMapping("/hello")public String sayHello() {return "Hello, SpringBoot!";}
    }
    
  3. 创建 Application 配置文件

    • src/main/resources/ 目录下创建 application.properties 文件,配置服务器端口等信息:
    server.port=8080
    

步骤 5: 运行和测试项目
  1. 运行 Spring Boot 应用

    • 右键点击 Application.java 文件,选择 Run 'Application' 进行启动。

    • 程序启动后,你会看到类似如下的输出:

      Tomcat started on port(s): 8080 (http) with context path ''
      
  2. 测试应用

    • 打开浏览器,访问 http://localhost:8080/hello,你应该能看到页面显示 "Hello, SpringBoot!"

步骤 6: 项目结构总结

经过上述步骤,你的项目结构应类似于以下内容:

my-springboot-app/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myapplication/
│   │   │               ├── Application.java
│   │   │               └── controller/
│   │   │                   └── HelloController.java
│   │   ├── resources/
│   │   │   └── application.properties
│   ├── test/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myapplication/
│   │   │               └── ApplicationTests.java
└── pom.xml

步骤 7: 创建完成

通过以上步骤,你已经成功地创建了一个基本的 SpringBoot 项目,并使用 Maven 来管理依赖关系和构建。了解项目结构并熟悉文件的作用是开发高质量应用的基础。在后续的开发过程中,你可以根据需求添加更多功能模块,比如数据库、前端模板等,逐步完善你的 SpringBoot 应用。

7. 写在最后

就如同医生必须要了解人体的构造、神经、血管,同样的道理一个开发人员也需要对Springboot的项目结构非常清楚,理解每个目录和文件的作用将有助于你更高效地开发SpringBoot应用。无论是配置文件、源代码,还是测试文件,都有着明确的职责分工,这样的组织方式帮助开发者保持代码整洁,并能够在团队合作中更好地协作。


http://www.dtcms.com/a/478193.html

相关文章:

  • mongodb一个服务器部署多个节点
  • 基金网站制作工程承包公司
  • 成都企业网站建设价格搜索引擎收录
  • 第9章:两条道路的风景:技术与管理的真实世界(4)
  • 基于frenet坐标系的规划与避障
  • 从本地到云端:Fiora+cpolar打造真正的私密社交通讯站
  • Vue Router 导航守卫
  • 技术评测丨RPA主流平台稳定性、安全与信创适配能力对比
  • 简约淘宝网站模板免费下载建立 wiki 网站
  • 【Unity】uNet游戏服务端框架(三)心跳机制
  • 二叉树的深搜
  • C++设计模式之行为型模式:模板方法模式(Template Method)
  • 做3dh春丽网站叫什么重庆十大软件公司
  • 长沙电商网站开发php开发网站后台
  • QT6中Combo Box与Combo BoxFont 功能及用法
  • 软考网工知识点-1
  • win10下Qt应用程序使用FastDDS
  • 链表相关的知识以及算法题
  • 模板网站建站步骤微信公众号和小程序的区别
  • Shell 使用指南
  • 重庆网站seo服务没效果
  • 开源项目重构我们应该怎么做-以 SQL 血缘系统开源项目为例
  • Sora2:AIGC的技术革命与生态重构
  • Modbus RTU 数据结构(发送和返回/读/写)
  • Nginx IP 透传
  • 海外IP的主要应用业务
  • 门户网站建设工序做微信网站要多少钱
  • 南阳网站优化费用推进网站 集约化建设
  • 算法训练之BFS实现FloodFill算法
  • Typescript - 枚举类型 enum,详细介绍与使用教程(快速入门)