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:指定数据库方言。
相关推荐
ProtonBase几秒前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
乐之者v7 分钟前
leetCode43.字符串相乘
java·数据结构·算法
suweijie7683 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿4 小时前
List深拷贝后,数据还是被串改
java
向前看-7 小时前
验证码机制
前端·后端
xlsw_7 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹8 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭8 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫9 小时前
泛型(2)
java
超爱吃士力架9 小时前
邀请逻辑
java·linux·后端