spring boot 核心配置文件
在 Spring Boot 应用程序中,核心配置文件是 `application.properties` 或 `application.yml`。这两个文件用于定义和管理应用程序的配置属性。它们位于 `src/main/resources` 目录下,并且在 Spring Boot 应用程序启动时自动加载。
核心配置文件的作用
- **定义应用程序配置**:
- **`application.properties`** 和 **`application.yml`** 是用来定义应用程序的各种配置属性,例如数据库连接、端口号、日志级别等。
- **集中管理配置**:
- 这些文件使得配置集中管理,便于在不同环境中进行调整和管理。
- **支持多种格式**:
- Spring Boot 支持 `application.properties`(属性文件格式)和 `application.yml`(YAML 文件格式)。你可以根据需要选择其中一种格式来定义配置。
`application.properties` 和 `application.yml` 的示例
**`application.properties` 示例:**
# 设置服务器端口
server.port=8080
配置数据源
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
配置日志级别
logging.level.org.springframework.web=DEBUG
**`application.yml` 示例:**
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
logging:
level:
org.springframework.web: DEBUG
配置文件的加载顺序
- **默认位置**:
- Spring Boot 默认会在 `src/main/resources` 目录下寻找 `application.properties` 或 `application.yml` 文件。
- **外部配置**:
- 可以通过 `spring.config.location` 和 `spring.config.additional-location` 属性来指定外部的配置文件路径。
- **命令行参数**:
- 可以通过命令行参数传递配置,例如 `--server.port=9090`,这些参数的优先级高于配置文件中的属性。
- **Spring Boot 属性优先级**:
- **命令行参数** > **配置文件** > **操作系统环境变量** > **Java 系统属性** > **默认属性**(通过 `SpringApplication.setDefaultProperties` 设置)。
配置文件的多环境支持
Spring Boot 支持不同环境的配置,可以通过使用 Spring Profiles 来实现。例如,可以在 `application-dev.properties`、`application-prod.properties` 等文件中定义不同环境的配置,并在启动应用时激活特定的 profile。
**示例 `application-dev.properties` 文件:**
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/devdb
**示例 `application-prod.properties` 文件:**
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/proddb
激活 profile
java -jar myapp.jar --spring.profiles.active=dev
总结
Spring Boot 是一种用于构建独立的、可执行的、生产级的Spring应用程序的框架。在Spring Boot中,可以使用配置文件来设置应用程序的各种属性和行为。在本文中,我将总结Spring Boot的核心配置文件,并在1000字内进行详细说明。
-
application.properties/application.yml 这是Spring Boot的主配置文件,用于配置应用程序的各种属性。可以通过设置属性的键值对来修改默认配置。例如,可以设置server.port属性来指定应用程序的端口号。
-
application-{profile}.properties/application-{profile}.yml 这些是Spring Boot的配置文件的变种,用于在不同的环境中加载不同的配置。可以通过设置spring.profiles.active属性来指定要使用的配置文件。例如,可以创建一个application-dev.properties文件,用于开发环境的配置。
-
bootstrap.properties/bootstrap.yml 这是Spring Boot的引导配置文件,用于配置系统的一些基本属性。与application.properties/application.yml不同,bootstrap.properties/bootstrap.yml文件在应用程序启动之前就被加载和解析。它主要用于配置与应用程序启动相关的属性,如配置中心的URL等。
-
logging.properties 这是Spring Boot的日志配置文件,用于配置应用程序的日志记录器。可以通过设置日志属性的键值对来修改默认的日志配置。例如,可以设置logging.level.root属性来指定根日志记录器的日志级别。
-
banner.txt/banner.jpg 这些是Spring Boot的启动横幅文件,用于在应用程序启动时显示自定义的横幅。可以通过创建一个ASCII字符或图像的文件来修改默认的横幅。例如,可以创建一个banner.txt文件,用于在启动时显示自定义的横幅文本。
-
static/ 这是Spring Boot的静态资源文件夹,用于存放应用程序的静态资源文件。可以将CSS、JavaScript、图片、HTML等文件放在static文件夹中,这些文件可以直接被访问,而不需要经过Controller的处理。
-
templates/ 这是Spring Boot的模板文件夹,用于存放应用程序的模板文件。可以在模板文件中使用Thymeleaf、Freemarker等模板引擎来生成动态的HTML页面。模板文件放在templates文件夹中,可以通过Controller来渲染并返回给客户端。
-
META-INF/ 这是Spring Boot的元数据文件夹,用于存放应用程序的元数据文件。可以将一些配置文件、属性文件等放在META-INF文件夹中,这些文件可以被其他组件、框架等使用。
-
application.properties文件中的属性 Spring Boot的application.properties文件中有许多属性可以进行配置,这里只列举一些常用的属性:
- server.port:指定应用程序的端口号。
- server.servlet.context-path:指定应用程序的上下文路径。
- spring.datasource.url:指定数据库的连接URL。
- spring.datasource.username:指定数据库的用户名。
- spring.datasource.password:指定数据库的密码。
- spring.jpa.show-sql:指定是否在控制台显示SQL语句。
- spring.jpa.hibernate.ddl-auto:指定应用程序启动时是否自动创建数据库表。
- spring.jpa.properties.hibernate.dialect:指定数据库方言。