【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.properties
或application.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.xml
或 build.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
-
安装 IntelliJ IDEA:
- 访问 IntelliJ IDEA 官方网站 下载并安装 IDEA。
- 安装完成后,打开 IDEA。
-
安装 Maven(如果没有预装):
- Maven 通常会与 IntelliJ IDEA 集成,因此大部分情况下,你不需要单独安装 Maven。但如果没有,可以去 Maven 官方网站 下载并安装。
- 在 IDEA 中,点击
File > Settings > Build, Execution, Deployment > Build Tools > Maven
,然后配置 Maven 的路径。
步骤 2: 创建 Maven 项目
-
启动 IntelliJ IDEA,点击
Create New Project
。 -
选择 Maven:
- 在新建项目的向导中,选择
Maven
。 - 确保
Create from archetype
未选中。选择Spring Boot
项目时,IDEA 会自动配置合适的archetype
(原型)。 - 点击
Next
。
- 在新建项目的向导中,选择
-
选择 JDK 版本:
- 在
Project SDK
中选择你的 JDK 版本。如果你还没有安装 JDK,可以从 Oracle 官网 下载。 - 点击
Next
。
- 在
-
填写项目信息:
- 输入
GroupId
和ArtifactId
。例如:GroupId
:com.example
ArtifactId
:my-springboot-app
GroupId
通常是项目的组织标识符,ArtifactId
是项目的名称。- 点击
Next
。
- 输入
-
选择项目保存位置:
- 选择项目的存储路径并点击
Finish
。
- 选择项目的存储路径并点击
步骤 3: 添加 Spring Boot 依赖
-
打开
pom.xml
文件:- 在项目树中,找到并打开
pom.xml
文件。
- 在项目树中,找到并打开
-
添加 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
:用于单元测试。
- 在
-
同步 Maven 依赖:
- 保存
pom.xml
文件后,IDEA 会自动提示你同步依赖。点击同步按钮以下载和导入依赖。
- 保存
步骤 4: 创建项目结构
-
创建主应用类:
- 在
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 应用,并启动该应用。
- 在
-
创建 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!";} }
- 在
-
创建 Application 配置文件:
- 在
src/main/resources/
目录下创建application.properties
文件,配置服务器端口等信息:
server.port=8080
- 在
步骤 5: 运行和测试项目
-
运行 Spring Boot 应用:
-
右键点击
Application.java
文件,选择Run 'Application'
进行启动。 -
程序启动后,你会看到类似如下的输出:
Tomcat started on port(s): 8080 (http) with context path ''
-
-
测试应用:
- 打开浏览器,访问
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应用。无论是配置文件、源代码,还是测试文件,都有着明确的职责分工,这样的组织方式帮助开发者保持代码整洁,并能够在团队合作中更好地协作。