spring boot项目有两个yaml文件,一个dev.yaml, 一个local.yaml,如何确认用哪个

在Spring Boot项目中,你可以通过配置文件的方式来管理不同环境(如开发环境、本地环境等)的配置。如果你有 dev.yaml 和 local.yaml 两个配置文件,你可以通过以下几种方式来确认和切换使用哪个配置文件。

方法一:使用 spring.profiles.active 属性

  1. 在 application.properties 或 application.yml 中设置活动配置文件

    你可以在 application.properties 或 application.yml 文件中指定要激活的配置文件。例如:

    application.properties

    
    

    properties复制代码

    spring.profiles.active=local

    application.yml

    
    

    yaml复制代码

    spring:
    profiles:
    active: local

    这将激活 local.yaml 配置文件。如果你想切换到 dev.yaml,只需将 local 改为 dev

  2. 在启动参数中设置活动配置文件

    你也可以在运行Spring Boot应用时通过命令行参数来指定活动配置文件。例如:

    
    

    sh复制代码

    java -jar your-app.jar --spring.profiles.active=dev

    或者如果你使用的是 Maven 插件:

    
    

    sh复制代码

    ./mvnw spring-boot:run -Dspring-boot.run.profiles=dev

方法二:使用命名约定

Spring Boot支持通过命名约定来加载配置文件。你可以将配置文件命名为 application-{profile}.yml,其中 {profile} 是你的环境名称。

  1. 重命名你的配置文件

    将 dev.yaml 和 local.yaml 重命名为 application-dev.yaml 和 application-local.yaml

  2. 激活配置文件

    然后,你可以使用与方法一相同的方式来激活相应的配置文件。

方法三:通过代码设置活动配置文件

你也可以在代码中通过编程方式设置活动配置文件,但通常不推荐这样做,因为它违反了配置应该与代码分离的原则。不过,如果你确实需要在代码中控制,可以这样做:


java复制代码

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.ResourcePropertySource;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ProfileSetter {
@Autowired
private ConfigurableEnvironment environment;
@PostConstruct
public void setActiveProfile() {
String profile = "local"; // 这里可以动态设置你的配置文件名称
String fileName = "application-" + profile + ".yaml";
try {
ClassPathResource resource = new ClassPathResource(fileName);
YamlPropertySourceLoader sourceLoader = new YamlPropertySourceLoader();
ResourcePropertySource propertySource = (ResourcePropertySource) sourceLoader.load(fileName, resource, null);
MutablePropertySources propertySources = environment.getPropertySources();
propertySources.addFirst(propertySource);
} catch (Exception e) {
e.printStackTrace();
}
}
}

总结

最推荐的方法是使用 spring.profiles.active 属性,因为它简单且易于管理。你可以通过 application.propertiesapplication.yml 文件或者启动参数来设置。如果配置文件很多,也可以考虑使用命名约定,让配置文件管理更加清晰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值