今天我学习了如何创建Spring Boot项目,我用的是Maven。记录一下其目录结构和配置文件的作用吧。
一、项目目录结构解析
当我们通过Spring Initializr
或IDE创建基于Maven的Spring Boot项目时,会生成以下标准目录结构(以IntelliJ IDEA为例):
核心目录说明:
-
src/main/java
-
存放所有Java源代码
-
启动类必须放在根包(如
com.example.demo
)下,确保组件扫描正常工作
-
-
src/main/resources
-
application.properties/yml
:核心配置文件 -
/static
:浏览器可直接访问的静态资源 -
/templates
:服务端渲染的模板文件 -
/mapper
:MyBatis映射文件(可选)
-
-
pom.xml
Maven项目核心配置文件,定义依赖项和构建配置:
<!-- 典型Spring Boot依赖示例 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、配置文件深度解析
1. 配置文件类型
Spring Boot支持两种配置格式(优先级:.properties
> .yml
):
application.properties
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
application.yml(推荐)
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
为什么推荐YAML?
-
结构清晰:通过缩进可视化层次
-
支持复杂数据类型:例如列表格式:
servers: - dev.example.com - test.example.com - prod.example.com
-
减少重复:可以使用锚点(&)和引用(*)实现配置复用
2. 多环境配置
在实际开发中我们可以通过命名约定实现环境隔离,以便在不同情形下使用不同的配置
application-dev.yml # 开发环境
application-test.yml # 测试环境
application-prod.yml # 生产环境
激活指定环境配置代码如下:
spring:
profiles:
active: dev
或者在启动时通过命令行指定:
java -jar myapp.jar --spring.profiles.active=prod
三:总结
Spring Boot通过约定优于配置(Convention over Configuration) 的核心设计理念,以标准化的项目结构(如src/main/java
逻辑代码容器、resources
资源配置中心、pom.xml
依赖基因图谱)和智能默认配置为基石,结合starter依赖模块化能力包与自动化配置引擎,彻底简化了开发流程。其配置体系通过.properties
与.yml
双格式支持、多环境策略(application-{profile}
)及优先级机制(命令行 > 外部目录 > classpath),实现灵活的环境适应能力;这种“结构化协作语言+隐形效率引擎”的模式,不仅提升了开发效率,更通过清晰的层级规范与配置可维护性,为应对复杂场景提供了工程化最佳实践。