springBoot总结-多配置文件实现:Profile方式、yaml多文档快

多Profile文件

Spring Boot 的多 Profile
功能允许你在不同的环境中使用不同的配置,比如开发环境、测试环境和生产环境。你可以为每个环境定义不同的配置文件,并在运行时通过激活相应的
Profile 来加载相应的配置。

多 Profile 配置文件命名规则

Spring Boot 支持通过文件名来区分不同的 Profile,命名规则如下:

application-{profile}.properties # 或 
application-{profile}.yml

其中 {profile} 是你定义的 Profile 名称,如 dev、test、prod 等。

激活 Profile

你可以通过以下几种方式激活 Profile:

命令行参数:

--spring.profiles.active=dev

application.properties 或 application.yml 文件中的属性:

spring.profiles.active=dev

环境变量:

SPRING_PROFILES_ACTIVE=dev

JVM 参数:

-Dspring.profiles.active=dev

Demo 示例

假设我们有三个环境:开发(dev)、测试(test)和生产(prod),每个环境都有不同的数据库配置。

  1. 配置文件

application-dev.yml

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_dev
    username: devuser
    password: devpass
    driver-class-name: com.mysql.cj.jdbc.Driver

application-test.yml

server:
  port: 8082
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_test
    username: testuser
    password: testpass
    driver-class-name: com.mysql.cj.jdbc.Driver

application-prod.yml

server:
  port: 80
spring:
  datasource:
    url: jdbc:mysql://dbserver.example.com:3306/db_prod
    username: produser
    password: prodpass
    driver-class-name: com.mysql.cj.jdbc.Driver

application.yml(通用配置)

spring:
  profiles:
    active: dev # 默认激活开发环境
  1. 主类
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
  1. 激活不同 Profile
    通过命令行参数:运行应用时添加 --spring.profiles.active=prod

修改 application.yml:直接修改 spring.profiles.active 的值

环境变量或 JVM 参数:根据实际情况设置

注意事项
当激活多个 Profile 时,可以使用逗号分隔,如 --spring.profiles.active=dev,test。

如果有通用配置和特定 Profile 配置,Spring Boot 会先加载通用配置,然后覆盖相同属性的特定 Profile 配置。

确保不要在生产环境中泄露敏感信息,如数据库密码等。

以上就是 Spring Boot 多 Profile 配置文件的基本用法和 Demo 示例。

yml多文档块方式实现springboot动态配置

在Spring Boot中,YAML(YAML Ain’t Markup
Language)文件是一种常用的配置文件格式,它支持多文档块(也称为多文件或文档分隔符),这允许你在单个YAML文件中定义多个文档。然而,Spring
Boot本身并不直接支持在单个YAML文件中通过多文档块来动态切换配置。Spring
Boot加载YAML文件时,默认会合并所有文档块到一个配置源中,而不是作为独立的配置集。

不过,我们可以通过一些方法间接实现类似的效果,比如使用Spring Profiles(Spring配置文件)结合YAML文件的不同部分,或者使用外部化配置(如Spring Cloud Config)来动态加载不同的配置文件。

使用Spring Profiles
虽然这不是直接的多文档块动态配置,但可以通过Spring Profiles来模拟这种效果。你可以在YAML文件中定义多个profiles,每个profile包含不同的配置。

application.yml 示例:

spring:
  profiles:
    active: dev


---
spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: jdbc:mysql://localhost:3306/devdb
    username: devuser
    password: devpass


---
spring:
  config:
    activate:
      on-profile: prod
  datasource:
    url: jdbc:mysql://localhost:3306/proddb
    username: produser
    password: prodpass

在这个例子中,通过激活不同的profiles(dev或prod),可以加载不同的数据库配置。

使用Spring Cloud Config
对于更复杂或更动态的配置需求,可以使用Spring Cloud Config。Spring Cloud Config是一个为分布式系统提供外部化配置支持的服务。它允许你存储配置在中心位置(如Git仓库),并通过HTTP REST API提供配置给客户端。

步骤概述:

设置Spring Cloud Config Server:这个服务负责提供配置。

配置客户端(Spring Boot应用):客户端连接到Config Server以获取配置。

动态更新配置:通过更新Config Server中的配置,并通知客户端刷新配置,实现配置的动态更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个双鱼座的测开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值