如何根据弹簧引导中的活动配置文件加载自定义属性文件



在我的春季启动应用程序中,我制作了info-local.properties和info-dev.properties如何根据当前活动配置文件访问正确的配置文件?

特定于环境的属性文件

spring-boot属性文件的命名约定是application-<profile>.properties,以便在没有任何额外代码的情况下自动读取。您应该将属性文件重命名为application-local.propertiesapplication-dev.properties

点击此处参考。

设置配置文件

有多种方式可以激活任何特定的配置文件。最简单的方法是:

  1. JVM系统参数:在运行时将-Dspring.profiles.active=dev添加到VM参数。

  2. 应用程序属性:在公用application.properties文件中添加spring.profiles.active=dev

单击此处了解其他方法。

手动加载属性

@Configuration
@PropertySource("classpath:info-${envTarget}.properties")
public class PropertiesWithJavaConfig {
//...
}

${envTarget}将由活动配置文件解析,并将正确的info-xxx属性加载到PropertiesWithJavaConfig中。点击此处参考。

Spring Profiles提供了一种分离应用程序配置部分的方法,并使其仅在特定环境中可用。

  • 对您来说,一个简单的解决方案就是像这样启动应用程序这个:

    --spring.profiles.active=本地,dev

  • 您还可以对主配置类进行注释,指定配置文件你想要:

    @配置@配置文件("production"(类MainConfig{。。}

  • 您可以通过调用以编程方式设置活动配置文件SpringApplication.setAdditionalProfiles(…(在应用程序运行之前。也可以使用激活配置文件Spring的ConfigurationEnvironment接口。

我还将留下一个链接,其中包含一个示例:弹簧外形示例

最新更新