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:指定数据库方言。
相关推荐
世间万物皆对象7 分钟前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了36 分钟前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·44 分钟前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic1 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王1 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康1 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
qq_17448285752 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
转世成为计算机大神2 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342732 小时前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍2 小时前
Scala的Array数组
开发语言·后端·scala