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

如何在Spring-Boot的生产过程中覆盖Application.Properties?

夏朝
2023-03-14

我使用spring boot和application.properties在开发过程中通过@configuration@profile(“dev”)选择数据库。

spring.profiles.active=dev
spring.config.location=file:d:/application.properties

在生产过程中,我希望在应用程序上下文之外创建一个应该加载的文件,然后使用d:/application.properties激活一个不同的配置文件:

spring.profiles.active=production

结果:当我启动应用程序时,配置仍然是dev,因此不知道怎么地没有考虑生产性属性文件的附加位置。我错过什么了吗?

spring boot 1.1.0.build-快照

注意:这个问题不是关于Tomcat的。

共有1个答案

傅乐湛
2023-03-14

我知道你问过如何这样做,但得到的回答是你不应该这样做。

相反,使用application.propertiesapplication-default.propertiesapplication-dev.properties等,并通过参数将配置文件切换到JVM:例如-dspring.profiles.active=dev

您还可以在测试时使用@TestPropertySource重写某些内容

理想情况下,所有的东西都应该在源代码管理中,这样就不会有什么意外了,例如,您如何知道您的服务器位置上有什么属性,哪些是丢失的?如果开发者引入新的东西会发生什么?

Spring Boot已经为您提供了足够的方法来正确地完成此操作。

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

 类似资料:
  • 问题内容: 我正在使用Spring Boot,并在开发过程中选择了一个数据库。 在生产期间,我想在应用程序上下文之外创建一个文件,该文件应该被加载,然后使用d:/application.properties激活不同的配置文件: 结果:启动应用程序时,配置仍为,因此不考虑生产属性文件的其他位置。我有什么想念的吗? 弹簧靴1.1.0.BUILD-SNAPSHOT 注意:这个问题 不是 关于 tomca

  • 我正在尝试重写方法。但我还是发现了错误: 马塞尔

  • 问题内容: 我有从外部配置Web服务中获取的jdbc属性文件。在spring启动中,为了设置mysql属性,将这些属性添加到application.properties很容易: 如何在我的应用中以编程方式覆盖这些内容? Spring-batch道具也是如此: 问题答案: 你可以在对ApplicationEnvironmentPrepared事件作出反应的生命周期侦听器中添加其他属性源。 类似于以下

  • 我想重写java中的getProperty()方法。util。物业类别,请告知。 1.Spring上下文文件 2.Java类 3.配置文件 仅供参考:我正在从配置文件中提取批次值,并希望在从中获取值后调用trim()。属性,以避免代码冗余,尝试重写getProperty()方法。 使用:Spring 4.0

  • 对于Spring Boot2.1,默认情况下禁用bean重写,这是一件好事。 然而,我确实有一些测试,其中我使用mockito用模拟实例替换bean。在默认设置下,使用这种配置的测试将由于bean重写而失败。 我发现唯一有效的方法是通过应用程序属性启用bean重写: 但是,我真的希望确保测试配置的bean定义设置最小,这一点将由spring在禁用重写的情况下指出。 我正在重写的bean是 在导入到

  • 致力于从Spring Security xml配置移动到Spring Security中的Java配置。 在我的类SecurityConfiguration中,它扩展了WebSecurity配置适配器。然而,问题是安全过滤器(特别是UsernamePasswordAuthenticationFilter)没有使用userDetailsService。我查看了启动,似乎这不是在Spring boot