gpt4 book ai didi

spring - @ActiveProfiles 值未分配给配置

转载 作者:行者123 更新时间:2023-12-01 00:40:37 24 4
gpt4 key购买 nike

如果我将它们设置为 VM args,我的事件配置文件将正常工作。

我有一个测试,我想使用 @ActiveProfiles("local")

这是我正在使用的类注释:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/jpaContext.xml")
@ActiveProfiles("local")
public class MyServiceTest {

当我尝试运行时,我在跟踪中得到以下信息:

Caused by: java.io.FileNotFoundException: class path resource [properties/database-configuration-${spring.profiles.active}.properties] cannot be opened because it does not exist

有没有想过为什么这个值没有被使用?

最佳答案

当您在配置文件中解析 spring.profiles.active 的占位符值时,Spring 默认为该值的系统属性,并在您将其设置为系统属性时获取该值.

现在,在您的测试中,由于未设置此系统属性,占位符未得到干净解析。一种修复方法是通过 bean 配置文件以稍微不同的方式加载属性:

<beans profile="local">
<context:property-placeholder location="classpath:database-config-local.properties"/>
</beans>

<beans profile="dev">
<context:property-placeholder location="classpath:database-config-dev.properties"/>
</beans>

关于spring - @ActiveProfiles 值未分配给配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com