我使用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的。
我知道你问过如何这样做,但得到的回答是你不应该这样做。
相反,使用application.properties
、application-default.properties
application-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