spring boot-17

spring boot 核心配置文件

在 Spring Boot 应用程序中,核心配置文件是 `application.properties` 或 `application.yml`。这两个文件用于定义和管理应用程序的配置属性。它们位于 `src/main/resources` 目录下,并且在 Spring Boot 应用程序启动时自动加载。

核心配置文件的作用

  1. **定义应用程序配置**:
  • **`application.properties`** 和 **`application.yml`** 是用来定义应用程序的各种配置属性,例如数据库连接、端口号、日志级别等。
  1. **集中管理配置**:
  • 这些文件使得配置集中管理,便于在不同环境中进行调整和管理。
  1. **支持多种格式**:
  • 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

配置文件的加载顺序

  1. **默认位置**:
  • Spring Boot 默认会在 `src/main/resources` 目录下寻找 `application.properties` 或 `application.yml` 文件。
  1. **外部配置**:
  • 可以通过 `spring.config.location` 和 `spring.config.additional-location` 属性来指定外部的配置文件路径。
  1. **命令行参数**:
  • 可以通过命令行参数传递配置,例如 `--server.port=9090`,这些参数的优先级高于配置文件中的属性。
  1. **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字内进行详细说明。

  1. application.properties/application.yml 这是Spring Boot的主配置文件,用于配置应用程序的各种属性。可以通过设置属性的键值对来修改默认配置。例如,可以设置server.port属性来指定应用程序的端口号。

  2. application-{profile}.properties/application-{profile}.yml 这些是Spring Boot的配置文件的变种,用于在不同的环境中加载不同的配置。可以通过设置spring.profiles.active属性来指定要使用的配置文件。例如,可以创建一个application-dev.properties文件,用于开发环境的配置。

  3. bootstrap.properties/bootstrap.yml 这是Spring Boot的引导配置文件,用于配置系统的一些基本属性。与application.properties/application.yml不同,bootstrap.properties/bootstrap.yml文件在应用程序启动之前就被加载和解析。它主要用于配置与应用程序启动相关的属性,如配置中心的URL等。

  4. logging.properties 这是Spring Boot的日志配置文件,用于配置应用程序的日志记录器。可以通过设置日志属性的键值对来修改默认的日志配置。例如,可以设置logging.level.root属性来指定根日志记录器的日志级别。

  5. banner.txt/banner.jpg 这些是Spring Boot的启动横幅文件,用于在应用程序启动时显示自定义的横幅。可以通过创建一个ASCII字符或图像的文件来修改默认的横幅。例如,可以创建一个banner.txt文件,用于在启动时显示自定义的横幅文本。

  6. static/ 这是Spring Boot的静态资源文件夹,用于存放应用程序的静态资源文件。可以将CSS、JavaScript、图片、HTML等文件放在static文件夹中,这些文件可以直接被访问,而不需要经过Controller的处理。

  7. templates/ 这是Spring Boot的模板文件夹,用于存放应用程序的模板文件。可以在模板文件中使用Thymeleaf、Freemarker等模板引擎来生成动态的HTML页面。模板文件放在templates文件夹中,可以通过Controller来渲染并返回给客户端。

  8. META-INF/ 这是Spring Boot的元数据文件夹,用于存放应用程序的元数据文件。可以将一些配置文件、属性文件等放在META-INF文件夹中,这些文件可以被其他组件、框架等使用。

  9. 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:指定数据库方言。
相关推荐
bigbearxyz10 分钟前
Caused by: java.net.SocketException: Connection reset问题排查
java·keepalived·proxysql
程序猿追1 小时前
我搭了个网页工具:输入关键词,SERP API 自动吐出比价 Excel
后端
Lee川1 小时前
RAG 实战:从一篇掘金文章出发,拆解检索增强生成的全链路
前端·人工智能·后端
Lee川1 小时前
MCP 高德地图实战:当 AI 学会使用工具,一个协议如何重塑大模型的行动边界
前端·人工智能·后端
楼田莉子2 小时前
C++17新特性:__had_include/属性/求值顺序规则
开发语言·c++·后端
程序员cxuan2 小时前
Codex 把我家烂网给优化后,我 TM 直接原地起飞了。
人工智能·后端·程序员
IT_陈寒2 小时前
Redis批量删除踩了坑,原来DEL命令不是万能的
前端·人工智能·后端
500842 小时前
昇腾 CANN 的五层架构,到底分了哪五层
java·人工智能·分布式·架构·ocr·wpf
摇滚侠2 小时前
Java 零基础全套教程,File 类与 IO 流,笔记 177-178
java·开发语言·笔记
叫我少年2 小时前
C# 命名空间与 using 指令 — 文件范围、全局导入、别名
后端