当前位置: 首页 > 知识库问答 >
问题:

正在spring加载环境特定属性文件

乐正翰
2023-03-14

我正在一个spring启动的应用程序,我需要你的协助在下面的场景。

我有每个环境的属性文件,比如application-dev.properties,application-prod.properties等。我的应用程序可以通过使用spring@profile注释来加载特定于环境的属性文件。

请帮帮忙。

共有2个答案

吕征
2023-03-14

@profile不用于加载环境特定属性文件。用于指定bean的配置文件。例如,

@Profile("dev")
@Component
class Foo {

}

这意味着foo的bean只有在活动配置文件包含dev时才可用。或者相反的@profile(“!dev”),这意味着当dev不是活动配置文件时bean可用。

因此,对于加载特定于环境的属性文件,由于它是spring-boot,您可以只指定活动的概要文件。有几种方法可以指定活动配置文件。

  • 环境变量:spring_profiles_active=dev,prod
  • 命令行参数:Java-jar app.jar--spring.profiles.active=dev,prod
  • 编程方式:SpringApplicationBuilder(...).Properties(“spring.profiles.active=dev,prod).run(...)
  • 默认application.properties或yaml:spring.profiles.active:dev,prod
齐成和
2023-03-14

您根本不需要使用@profiles注释。只需使用

@ConfigurationProperties(locations = "classpath:myapp-${environment.type}.properties")

并通过系统属性定义环境类型。例如。通过命令行-denvironment.type=dev

 类似资料:
  • 我试图使用Micronaut 3加载特定于环境的属性。我有两个文件和 application.yml application-dev.yml 正在尝试访问URL 在teamConfiguration变量中,我可以看到文件不是来自文件。 正如我所知,默认情况下Micronaut只查找应用程序。yml。然后,对于测试、开发和产品,它加载应用程序。yml并用应用程序测试中定义的值覆盖其中的任何值。yml

  • 我在web应用程序中工作。我正在使用spring分析加载基于环境的属性。下面是样品 在web.xml中,我们可以给出配置文件 现在,我的查询是针对我需要创建一个单独的Java类的每个环境。 问题:是否可能只有一个类,比如提供配置文件名称作为某个绑定参数,比如。 同时,让我知道是否有其他更好的选择,以实现同样的。

  • 我正试图在我的Spring Boot 1.4应用程序中实现Jasypt,因为在这样的小应用程序中使用Spring Cloud Config似乎有些过头了。然而,我显然不理解Spring Boot如何确定其运行的环境,以及如何使用适当的属性文件。我需要加密存储的数据源属性,例如: 在我的目录中,我有三个文件: <代码>应用程序。属性:spring的单个条目。配置文件。活动=本地 <代码>应用程序本地

  • 我正在spring boot中构建一个可重用的库,它可以调用Rest API并进行一些验证。这将构建为JAR,目标是通过添加pom将此库用作maven依赖项。其他spring boot项目中的xml。 问题是库如何知道要加载哪些环境属性。因为它没有在任何服务器上运行。例如:调用应用程序将包含为依赖项,并部署在dit环境中。我希望库能够获取dit属性,如url、令牌等,以及关于如何实现这一点的任何建

  • 问题内容: 这似乎是一个很常见的问题,但是我没有找到关于最佳方法的任何共识,因此我在这里提出了这个问题。 我正在使用Spring Batch和Spring开发命令行Java应用程序。我正在使用属性文件以及PropertyPlaceholderConfigurer,但是我不确定为多个环境(开发,测试等)处理属性文件的最佳方法。我的Google搜索只提供了一种编程方式来加载属性(即,在Java代码本身

  • 我在尝试添加